• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:自身が記述された標準モジュールを常に参照する方法)

自身が記述された標準モジュールを常に参照する方法

このQ&Aのポイント
  • 標準モジュール名を指定せず、自身が記述された標準モジュールを常に参照する方法
  • 標準モジュール名を変更しても動作するようにする方法
  • ThisWorkbookを使用して自身が記述されたモジュールを参照する方法

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

  • ベストアンサー
  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.2

VB6系では無理っぽいですね。 ActiveCodePane も VBE の画面でアクティブの意味のようで、 「マクロの実行」から呼び出しを変更しても変わりませんでした。 プログラムの実行中はメモリのアドレスなどで管理されていて、 文字列情報は保持されていないようです。 (情報が失われているので実行中に文字列情報まで遡る手段が無い) デバッグ目的等でエラーの発生したプロシージャを特定したり する工夫をしているような方法を紹介しているサイトもありましたが、 結局、コード上に最初から埋め込んでおくしかないようです。 (ソースコードを自動で編集して、埋め込む情報自体を自動で 作成するプログラムを作って対応していました。)

cayman_co_ltd
質問者

補足

ご回答誠に有難うございます、やはり、言語の制約で既に難しいということですね、それが分かっただけでも非常に参考になりました、アドバイス有難うございました。

その他の回答 (1)

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.1

実行中なら Application.VBE.ActiveCodePane.CodeModule かな。

cayman_co_ltd
質問者

補足

ご回答誠に有難うございます、現在は例えばModule57にショートカットを割り当てて(いわゆる実行したいプログラムのセレクター)、そこから実行したいプログラムの番号をインプットボックスで入力すると該当する(例えばModule2)モジュールを呼び出し実行できるというような構成にしているのですが、この場合Module57でCallされたModule2内に記載した Set ThisCodeModule = Application.VBE.ActiveCodePane.CodeModule というコードだとThisCodeModuleにModule57が設定されてしまうようです。この場合にModule2を参照するような設定にはできませんでしょうか?もしご存知でありましたらご指導いただけますと幸いです。よろしくお願いいたします。

関連するQ&A

専門家に質問してみよう