- 締切済み
VB 6.0 プロジェクトにバインドされているフォームの名称を列挙する方法
皆様、こんにちは。 標記の件質問したく投稿します。 VB 6.0 で現在のプロジェクトにバインドされているフォームの名称を列挙することは可能でしょうか? ロード中のフォームなら言うまでもなく、Formsコレクションで参照できますが、ロード有無に関わりなく、利用可能なフォームを列挙する方法が思い浮かびません。 # Accessなら、MSysObjectsテーブルを参照する (MDB、MDE の場合) 、AllForms コレクションを利用する (ADP、ADE の場合) と言った手段があるのですが・・・。 デザイン時に配列なりコレクションなりを利用してハードコーディングすることは可能ですが、保守性が悪いし、バグを仕込む原因にもなるので、避けたいのです。 よい方法をご存知の方、アドバイスを頂けると幸いです。 当方のプログラミングスキルは ・構造化設計、プログラミング → ◎ ・Win 32 API の利用 → ◎ ・COM (オートメーション) の利用 → ◎ ・AddresOf演算子の利用法、メッセージフック、サブクラス化等 → ○ ・再利用可能コンポーネントの作成 → ○ といったレベルです。 コメントをお待ちしております。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Kuppycat
- ベストアンサー率50% (109/216)
解析ソフトを使うのはダメでしょうか? フリー(または試用)でいろいろあります。 http://www.nifty.com/download/cgi-bin/vec_search.cgi?key=%B2%F2%C0%CF&dir_path=%2Fwin%2Fprog%2Fvb%2F&srch_max=30 自分で作るのであれば、スルーの方向で~(;´▽`A``
- piyo2000
- ベストアンサー率49% (144/293)
>VB 6.0 で現在のプロジェクトにバインドされているフォームの名称を列挙することは可能でしょうか? おそらくBuXiangHuaさんもそれなりに調べられただろうとは思いますが、おそらく(通常の方法では)無理だと思います。 VBE(開発環境)であれば簡単に列挙できると思いますが。 「現在実行しているプロシージャ名を取得することは出来ないか?(エラートラップでログを吐かせたいときに便利ですよね)」という良くある質問と実質同じ事だと思います。 # この場合はハードコーディングするしかなさそうですが。 Accessの場合は特殊・・・ということもお分かりなのでしょう(^^; >保守性が悪いし、バグを仕込む原因にもなるので、避けたいのです。 VBEでは列挙できる(VBComponents)ので、ハードコーディングを自動で作成してくれるアドインを作成すればいいんじゃないかと思うんですが。(やったことはありませんけど)
お礼
コメントありがとうございます。 > おそらく(通常の方法では)無理だと思います。 やはりそうですか。 残念です。 とは言え、今私が検討している機能は、絶対に必要不可欠というものではなく、あれば便利、という程度なので、差し迫った問題ではありません。 > 実質同じ事だと思います。 確かにそれもFAQですが、今回の件の利用目的はそれとは違います。 > アドインを作成すればいいんじゃないかと思うんですが。 時間を掛けてやるだけの意義ありと判断できれば作成するのにやぶさかではありませんが、そこまでの価値はないように思います。 必要があれば、再検討します。 ありがとうございました。
お礼
コメントありがとうございます。 残念ながら、私が求めているのは解析ツールでもなければ、コードジェネレータでもなく、バインドされている利用可能なフォームを実行時に列挙できる、メンテナスフリーなコードなのです。 すでに申し上げた通り、絶対に必要不可欠というものではなく、あれば便利という程度なので、断念することにしました。