[ソフト]MindManagerのマクロでちょっと便利に
勝間和代さんの必須アイテムとしても知られているMindManagerですが、私も愛用しているものの、機能がたくさんあって正直使いこなせていません。最近はVBAライクなマクロ言語が内蔵されていることを知りました。プログラマがMindManagerを使うのだから、オリジナルのマクロの1つや2つ書いて当然じゃないかと勝手に妄想し、処理が非常に単純だけれども割と使えるマクロを考えてみました。
で、最初に選んだのが「トピック文字列結合マクロ」。あってもよさそうな機能なのに見つからなかったし、探す時間が面倒なのでマクロにしました。実行すると
が
となる感じです。
ソースコードはこんな感じ。
Visual Basic:
-
Sub Main
-
Dim i As Integer
-
Dim n As Integer
-
Dim pTopic As Topic
-
Dim s As String
-
-
' 準備
-
n = ActiveDocument.Selection.Count
-
If (n = 0) Then
-
Exit Sub
-
End If
-
-
' 文字列の結合
-
For i = 1 To n
-
Dim t As Topic
-
Set t = ActiveDocument.Selection.Item(i)
-
s = s & t.Text
-
Next i
-
-
' 初期トピックの兄弟として追加
-
Set pTopic = ActiveDocument.Selection.Item(1)
-
pTopic.ParentTopic.AddSubTopic(s)
-
End Sub
- ActiveDocumentは現在開いてるマップのこと
- ActiveDocument.Selectionは現在開いてるマップで選択されているオブジェクトの集合
- ActiveDocument.Selection.Countは選択されているオブジェクトの個数を返す
- ActiveDocument.Selection.Item(i)は選択されているオブジェクトの参照を1-baseの添え字で取り出す。表示順とは限らない。
- Topic.AddSubTopic(text)は、textという文字列のサブトピックを追加すること
- 選択されているオブジェクトは通常のトピックであるという使用前提のもとに記述している
- SetはVB6(VBA)にて、参照を代入するときに明示的に記述する必要がある
久しぶりにVB6(VBA)書きましたが、phpの方がいいです(笑 Set構文は初めて知りました。Setしないとエラーが起きていつまでも動かなかったです。ActiveDocumentやSelectionの仕様はマクロエディタの機能の1つ「オブジェクトブラウザ」を使うと少しわかった気になります。
自力で調べるのはしんどいですね。海外でMindManagerの入門的なページがないか探してみようかな。でも、マクロを覚えるとMindManagerをもっと好きになれるかもしれません。

