前回も書きましたが、どうも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