The following two tabs change content below.




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



最新記事 by taka (全て見る)
- 『雑記』最近の私の話~ - 2019年9月26日
- 【動画】自作パソコン構成変更!ケースをNZXT H500に交換しました! - 2019年6月5日
- VBA 『Array関数』指定した要素で配列を作成する - 2019年5月23日
- 「動画」初完全ワイヤレスイヤホン『Jabra Elite Active 65t』 - 2019年5月17日
- VBA 日付で令和を簡単に判定してみよう - 2019年5月7日
どうも、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フォロー
Follow @taka_pc1027■YouTubeチャンネル登録