機能と数式 | VBA | セミナー | オンラインソフト | お問い合わせ | その他
Top > Excel > VBA

他ブックのマクロを実行する



Excel 上で 2 つのブックを開いていたとします。ここでは仮に「Book1.xls」と「Book2.xls」としましょうか。
「Book1.xls」には『Sub Test1』というマクロがあり、「Book2.xls」には『Sub Test2』というマクロがあったとします。

ここで、Test1 から Test2 を実行しようと次のように書くとエラーになります。

Sub Test1()
    Call Test2
End Sub

Book1.xls には Sub Test2 がありませんので、"Sub プロシージャが見つかりません" というエラーです。本来のやり方は、Book1.xls から Book2.xls を参照設定すればよいのですが、これは面倒くさいです。

他ブックのプロシージャを実行するときは、Call メソッドではなく Run メソッドを使いましょう。

Sub Test1()
    Application.Run "Book2!Test2"
End Sub

とすれば OK です。

ブック名とプロシージャ名を「!」でつなぐ点に留意してください。





このエントリーをはてなブックマークに追加