|
先日、上司にApplication.Runを使用したVBAを提出したところ、
以下の方法教えてもらいましたので、自己レスします。
1.標準モジュールにマクロを書いたExcelファイルを、.xla形式で保存する。
例)
[ ファイル名:MacroCall.xla ]
sub MacroTest()
msgbox "呼び出されました"
exit sub
2.呼び出し元のExcelファイルにボタンとなるオブジェクトを作成する。
3.2.で作成したオブジェクトを右クリック→マクロの登録を選択。
4.テキストボックスに以下の形式で入力。
[ 'フルパス\1.のxlaファイル'!マクロ名 ]
※ドライブ名から.xlaまでのファイル名のフルパスは
シングルクォーテーション(')で囲う。
※シングルクォーテーションを閉じた後は、イクスクラメーションマーク(!)
を入力し、その後マクロの名称を記入。
例)
'C:\Test\MacroCall.xla'!MacroTest
これで、オブジェクトのボタンから他のエクセルブックのマクロを呼び出せます。
ただし、修正入るたびに、.xlaに出力しないといけないので、はっきり言って
面倒です。xlaにするよりは、Application.Runにした方が、「かなり!」
メンテしやすいです。
|
|