最終更新日:2023-07-06第127回.他のブックのマクロを実行(Runメソッド)他のブックの中にあるプロシージャー(Sub,Function)を実行する場合は、Application.Runメソッドを使います。別々に作成されたマクロVBAの入ったブックを連携させる時には必須になります。Application.Runメソッドマクロの実行または関数の呼び出しを行います。実行するマクロを指定します。他ブックのマクロの場合は、ブック名!プロシージャー名と指定します。関数に渡す引数を指定します。このメソッドの引数では、名前付き引数は使用できません。引数を順番通りに指定する必要があります。プロシージャーに渡すことができる引数は最大30個までとなっています。メソッドは、呼び出したマクロが返す値をそのまま返します。Runで実行したプロシージャーの戻り値を受け取り、その値をそのまま返します。実行したプロシージャーがSubプロシージャーの場合は何も返しません。「ブック間のマクロテスト」と、メッセージボックスに表示されます。掛け算の結果がメッセージボックスに表示されます。注意点Runで呼び出した先で、呼び出し元(Runを実行したブック)を閉じると、マクロはその時点で停止します。"これは実行されません。SubBook2のtset2を実行しても、Book1のtest1でBook2を閉じた時点でマクロは終了します。従って、上記ではメッセージボックスは表示されません。本来は、このようなブック間でプロシージャーを起動することは、あまり望ましい状態ではありません。ブックの依存関係(親子関係)をしっかり設計して、動作順を考慮しておけばApplication.Runを使う必要性はかなり減らせるはずです。ブックのイベントを使用して開いたときに実行する等での対応という事になります。後から追加していく形でシステムを拡張していったりとか、相応に大きなシステムになれば、どうしてもこのような手段が必要になってくるものです。そのような時のためにも、必ず抑えておきたい機能になります。・サイト内のテーブルに関する他のページ第127回.他のブックのマクロを実行(Runメソッド)第128回.マクロをショートカットで起動(OnKeyメソッド)マクロVBAをショートカットで起動したい時には、Application.OnKeyメソッドを使います。通常マクロはボタンや図形に登録して起動しますが、これらをクリックするにはマウス操作が必要です。Application.OnKeyメソッドを使う事でショートカットで起動できるようになります。見るTRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)無効な前方参照か、コンパイルされていない種類への参照です。他のブックのマクロを実行(Runメソッド)このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。他のブックのマクロを実行このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。