前回の記事では、ボタンをクリックしてVBA編集画面(Visual Basic Editor)を立ち上げる方法を紹介しました。
しかし実際に使い始めると、「画面を開くだけでなく、修正したいコードの場所へ直接ジャンプできればもっと便利なのに」と感じる方も多いのではないでしょうか。
通常、VBEを起動し目的のマクロを開くには、リボンから以下の手順で操作します。
1.「開発」タブをクリック
2.「マクロ」を選択
3. 一覧から目的のマクロ名を選択
4.「編集」ボタンをクリック
この一連の「開発タブからマクロ名を選んで編集画面を開く」という操作を「マクロの記録」でコード化すると、次のようなシンプルな「Application.Goto Reference:=”Macro1″」の1行が生成されます。
Sub Macro1()
'
' Macro1 Macro
'
'
Application.Goto Reference:="Macro1"
End Sub
しかし、このコードでマクロを実行した場合には、もしシート上に「Macro1」という「名前の定義」したセル範囲があると、そちらのセルが優先して選択されてしまいます。これに邪魔されず、確実にマクロのコードを表示させるには、以下のように記述する必要があります。
Sub Macro1()
Application.VBE.MainWindow.Visible = True 'VBEのメインウィンドウを表示します。
ThisWorkbook.VBProject.VBComponents("Module1").Activate 'Module1のコード編集画面を開きます。
Application.Goto Reference:="Macro1" 'Macro1という名前の場所へ移動します。
End Sub
また、VBEを起動させるための上記のコードを別のモジュール(Module2など)に分けておけば、画面にはModule1に書いた修正対象のプログラムだけが表示されます。
そして「Application.Goto Reference:=”Macro1″」の「”Macro1″」を修正対象のプログラム名にしておくと作業者に余計なコードを見せずに済むため、よりメンテナンスに集中しやすくなるはずです。


