VisualStudio 自動実行マクロの作り方

http://www.aurora.dti.ne.jp/~m-tamaki/Tips/PC.htm

昔のVisual C++ 6.0なんかで動いたマクロでは、ファイルを開いたときに自動的に起動するような関数は

Sub Application_DocumentOpen( theDocument )
MsgBox( "FileOpen!" )
End Sub

というように"Application_DocumentOpen"という名前の関数に書いた。
昔のVBイベントハンドラというのはイベントに対して関数名が1対1に決まっていた。

.NETになってからは少し変わって、WithEvents〜Handles句というのとAddHandler〜RemoveHander句という二つのができた。
んで上の"Application_DocumentOpen"の代わりを行うにはWithEvents〜Handlesのほうが向いていた。
んで、WithEventsの後にはイベントを取得したいオブジェクトのインスタンスの変数を書くことで宣言できる。
が、しかし、その変数にインスタンスをセットしないといけない。
マクロの起動時に実行されるイベントも同様に定義するため、自動的にインスタンスをセットできない。
るーぷ。

困り抜いて朝の3時半までがんばって、もうこれでだめならあきらめようと思ってあんまり期待しないで.NETのヘルプをトップから順に見ていった。

…あっさりやり方見つかるし。

Visual Studio .NET

Visual Studio .NET による開発

開発環境の操作

マクロの使用による反復操作の自動化

マクロと EnvironmentEvents プロジェクト アイテム

やり方は

左のクラスビューを開く

EnvironmentEvents モジュールをダブルクリックして表示

右上の[クラス名] ボックスをクリックし、[TaskListEvents] などのイベント タイプを選択

選択したイベント タイプで利用できるイベント (タスク一覧イベントなど) が、[メソッド名] ボックスに表示されるので洗濯。

マクロにイベントが挿入されて、イベント プロシージャにコードを追加できるようになる。