VBA 「Runメソッド」別のBookのマクロを実行



The following two tabs change content below.
アバター

taka

あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪

どうも、taka(@takabou63)です(^^♪

さて、皆さんは他のBookのマクロを実行したいと思ったことは有りますか?

その様な時に使用するのが『Runメソッド』です、今回は『別のBookのマクロを実行「Runメソッド」』についてご紹介します!

『なんか難しそう』と思ったかもしれませんが、割と簡単なのでぜひお使いください(^^♪

VBA Runメソッドの書式

別のBookのマクロを実行するには、『Runメソッド』を使用します。(Callステートメントでも使用する方法はありますが、それはまた別の機会にご紹介します。)

Runメソッドの書式は以下の通りです。

Application.Run(Macro, Arg1, Arg2, Arg3, ・・・, Arg30)
引数説明
macro実行するマクロを指定します。
他ブックのマクロの場合は、
ブック名!プロシージャー名

と指定します。
Arg1-Arg30引数を指定します。(省略可)

Run メソッド 使用例

Runメソッドの使用例です。とりあえず『Book1』と『Book2』を用意して『Book2』から『Book1』のマクロを実行してみます。

 'Book2のコード
 Sub Sample()
    'Book1が閉じている場合
    'パスは「'」で囲む。マクロ名の前に「!」をつける
    Application.Run ("'D:\Book1.xlsm'!msg")
 
End Sub
Sub Sample2()
  
  'Book1が開いている場合
  'マクロ名の前に「!」をつける
    
    Application.Run "Book1.xlsm!msg"
 
End Sub
 'Book1のコード
Sub msg()

MsgBox "呼び出されました"

End Sub

実際はこのようなコードはあまりいいものではありません。

ですが、どうしても避けられない場合などはRunメソッドを使用することで避けられる可能性があります。

できるだけ、Bookを操作する場合はRunメソッドなどは使用しないようにしましょう!

フォロー・チャンネル登録お願いします

VBA以外についてのブログはこちら↓

https://yb-log.com/

■Twitterフォロー

■YouTubeチャンネル登録

ファイルやコードの利用、WEBサイトの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

Sponsored Link

 

WordPressでブログを始めるなら

WordPress簡単インストール&安心の安定性

レンタルサーバー Xserver