• ベストアンサー

VBAを利用して、呼び出し元マクロのフルパスを取得

現在、エクセルマクロの勉強をしているのですが、ご質問があります。 早速ですが、[マクロA]から[マクロB]を呼び出す時、[マクロA]のフルパスを[マクロB]から取得する事はできるのでしょうか。 [マクロA]のファイル名に関しては、"AAA_111.xls"だったり"AAA_222.xls"だったりします。 あいまい検索で実行中のブックの名前を取得し、そのファイル名を元にフルパスは分かるものでしょうか。 もしくは、効率の良い方法がありましたら、ご教授下さい。

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

  • ベストアンサー
  • ss-ak
  • ベストアンサー率58% (23/39)
回答No.1

どういう要件で、そのようなことをしたいのかによって、最適なやり方は異なるかと思いますが、マクロAの側から、引数でフルパスを渡す方法が、一般的にはシンプルで、複雑な不具合の入り込む可能性が低く良いのではないかと思います。

その他の回答 (1)

  • ss-ak
  • ベストアンサー率58% (23/39)
回答No.2

追記: ても、そもそも、複数の文書ファイルにまたがってマクロを持たせる、という構造そのものが、あまり筋がよくないと思います。 本当にそんな複雑な構造にする必要があるのか、というところから、抜本的に設計を再検討した方が良いかもしれません。 (そういう構造が良さそうなケースも、全く思い当たらないわけではないのですが、かなり特殊なケースなのでは、と思うので)

akua0331
質問者

お礼

ご指摘ありがとうございます。 夫々のマクロを個々で使用する予定でしたが、まとめて実行する場合があり、[マクロA][マクロB][マクロA+B]とした際の、メンテナンスを手間と考えた為、ご質問させて頂きました。 ご対応頂きまして、ありがとうございました。

関連するQ&A