• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのマクロで別ファイル(エクセル)のマクロを実行させるには?)

エクセルマクロで別ファイルのマクロを実行する方法は?

このQ&Aのポイント
  • エクセルのマクロで別ファイルのマクロを実行する方法について教えてください。
  • 複数のエクセルファイルのマクロAを別のエクセルファイルのマクロBで実行することは可能でしょうか?
  • マクロBによってマクロAのプロシージャを指定して実行させる方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • myRange
  • ベストアンサー率71% (339/472)
回答No.4

回答2、myRangeです。   >実は、マクロAは複数のサブプロシージャがあり、メインプロシージャ(メインルーチン)から必要に応じてサブプロシージャ(サブルーチン)を呼び出す(Call)構造をしています。 >つまり、やりたいことはマクロBからマクロA内のサブプロシージャ(サブルーチン)を動作させたかったという意味でした。 質問者はちょっと勘違いしているようですね。 マクロAもプロシージャであり、Callされるのも同じプロシージャーです。 質問者がメイン、サブと呼んでいるだけで、それらは個々のプロシージャですから 例えば、マクロAからCallしている MacroAAA を実行させたければ   Application.Run "別ブック.xls!MacroAAA" とそれを指定してやるだけです。  

e-eg6_001
質問者

お礼

myRange様ありがとうございます。 ファイルA(マクロAが入っている)のファイル名は、A001,A002,A003・・・となっていて(インクリメントしたいから)マクロBにおいて、 Dim F_Name As String F_Name="A001.xls" Application.Run (F_Name & "!MacroAAA") として無事に動かすことが出来ました。 myRange様 感謝いたします。本当に感謝しても仕切れません。 機会があるときはまたご教授ください。 本当にありがとうございました!!!

e-eg6_001
質問者

補足

myRange様ありがとうございます。 >質問者はちょっと勘違いしているようですね。 >マクロAもプロシージャであり、Callされるのも同じプロシージャーです。 その通りです。私が勝手にメインとかサブとか言っているだけでした。 申し訳ありませんでした。 >Application.Run "別ブック.xls!MacroAAA" 試してみます。

その他の回答 (3)

noname#192382
noname#192382
回答No.3

ファイルAのマクロをコピーしてファイルBのマクロに貼り付ければよいです。

  • myRange
  • ベストアンサー率71% (339/472)
回答No.2

マクロBから、別ブック.xls の MacroA を実行したい場合は マクロBに、次のコードを。。。 Application.Run "別ブック.xls!MacroA" それから、 >マクロBによってマクロAのプロシージャを指定して実行させることは? これ意味不明です。 マクロAのプロシージャとはなんでしょうか。 マクロAがプロシージャそのものだと思いますが。。。 そこら辺りはも少し詳しく補足する必要があるでしょう。  

e-eg6_001
質問者

補足

回答ありがとうございます。 >Application.Run "別ブック.xls!MacroA" 早速、試してみます。 >マクロAのプロシージャとはなんでしょうか。 >マクロAがプロシージャそのものだと思いますが。。。 実は、マクロAは複数のサブプロシージャがあり、メインプロシージャ(メインルーチン)から必要に応じてサブプロシージャ(サブルーチン)を呼び出す(Call)構造をしています。 つまり、やりたいことはマクロBからマクロA内のサブプロシージャ(サブルーチン)を動作させたかったという意味でした。 申し訳ありませんでした。。。

  • tadagenji
  • ベストアンサー率23% (508/2193)
回答No.1

マクロの保存先をPERSONAL.XLSにすればどうですか

e-eg6_001
質問者

補足

回答ありがとうございます. ご指摘のとおり、マクロAをPERSONAL.XLSのモジュールに置き、マクロBの中でマクロAを呼んで(Call)見ましたが、 「sub または関数が定義されていません」 となってしまいました。つまり、マクロBからPERSONAL.XLS内のマクロAは見えないようです. ちなみに手動でPERSONAL.XLSに置いたマクロAを動かすことは出来ましたが・・・

関連するQ&A