Mindmanagerのマクロ(続き)

前回も書きましたが、どうもNote関係を日本語で使っていると変なことが起りがちなので、別の方法でやってみることにしました。
トピックにハイパーリンクを設定し、テキストファイルに飛ぶようして見ました。
なかなか便利ですが、例えばwordに出力するときにはリンクとしてしか表示してくれないので、マップと一体的にテキストファイルに出力するマクロも作らないといけないな、と思っています。
誠に拙いですが、自分用のメモに書いておきます。

Sub Main
 Dim a1 As String
 Dim a2 As String
 Dim a3 As String


 Dim i As Integer
 Dim n As Integer


 Dim pTopic As Topic
 Dim pSubTopic As Topic
 Dim pDoc As Document


 Dim pHidemaru As String
 Dim pTH As String
 Dim pPath As String
 Dim pFullname As String


' 準備 トピックが一つだけ選ばれているかチェック
 n=ActiveDocument.Selection.Count
 If (n = 0) Then
  GoTo pDS
 End If
 If (n > 1) Then
  GoTo pDS
 End If


 Set pTopic = ActiveDocument.Selection.Item(1)
 Set pDoc = pTopic.Document
 pPath = pDoc.Path
 pFullname = pDoc.FullName
 pTH = pTopic.Text
 a2 = pFullname & " " & vbCrLf & pTH 'ファイル冒頭に書き込む文字列をセット
 a3 = Format(Now,"yyyymmddhhnnss") 'リンク先のファイル名は年月日時分秒の文字列で一意性を確保


 Clipboard a2
 a1 = pPath & "\" & a3 & ".txt"
 Open a1 For Output As #1
 'Print #1,a2 UTF-8で開くと文字化けするので、直接書き込むのは止めて、クリップボード経由にした
 Close #1


 'a3 = "Note for " & pTH & " Created on " & a3
 If pTopic.HasHyperlink Then
  '既にハイパーリンクがある場合、サブトピックを作ってそこにハイパーリンクをセット
  pTopic.AddSubTopic(a3)


  'ここで本当は新しく作ったサブトピックにフォーカスを移したいのだがやり方が分からない。
  '仕方がないので、サブトピックについて、一番最後に作られたものに最後のアイテムナンバーが与えられる、との想定で
  '(そしてそれはおそらく正しいようだが)
  '新しく作ったサブトピックを_pTopicにセットし、操作可能にすることにした。
  n = pTopic.SubTopics.Count
  Set pSubTopic = pTopic.SubTopics.Item(n)


  'ハイパーリンクのセット。ここは直接絶対アドレスを入れることで作ることができた
  pSubTopic.CreateHyperlink(a1)
  pSubTopic.FillColor.SetARGB(128,128,0,0)


 Else


  pTopic.CreateHyperlink(a1)


 End If


 '作成したテキストファイルを秀丸で開く
 pHidemaru = "C:\Program Files\Hidemaru\Hidemaru.exe /fu8 /x C:\UTILS\hidemaru\macro\paste.mac " & a1
 'paste.macクリップボードの内容(ファイル名とトピックテキスト)を貼り込むだけのもの
 Shell(pHidemaru,5)


 GoTo pEnd


 pDS:
 MsgBox("Please select 1 topic.")


 pEnd:


End Sub