- ベストアンサー
ExcelVBA 定数宣言を外部ファイルで
- ExcelVBAで大量の定数宣言を行う際、外部ファイルを使用する方法について教えてください。
- プログラミングでは同じ値でも異なる意味を持つ場合があります。Constを多用して意味を明確にしたいのですが、大量のConst宣言行列がプログラムを複雑にしてしまいます。
- VB初心者のため、外部ファイルからの定数宣言方法がわかりません。どのようにすれば大量のConst宣言を防ぐことができるでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
外部ファイルで定数宣言して使いたい場合は、 標準モジュールにconstなりを書いていけば、ご希望の事はできます。 別野Excelでも使いたい場合は、 VBA画面のプロジェクトウィンドウで、他で使いたいファイルを右クリックして ファイルのエクスポートを選べば、ファイルとして出力できます。 参考:http://officetanaka.net/excel/vba/tips/tips112.htm で、前回も書いたenumですが、わかりやすそうな解説をしてくれているHPをあげておきます。 http://www.moug.net/tech/exvba/0150119.html http://excel-ubara.com/excelvba/EXCELVBA409.html 同じくenum関係ですが、元々定義されているenumです。 http://ameblo.jp/make-excel/theme-10038431414.html
その他の回答 (3)
- airhead-no1
- ベストアンサー率48% (45/92)
補足で書かれたURL(http://d.hatena.ne.jp/language_and_engineering/20090731/p1) (2)便利な方法(テキスト形式) が、使い回しするのには一番良いですね。 そのページにも書いてありますが、テキスト形式で管理できるのでメモ帳でも修正ができますし。
お礼
個々ではオープンイベントで読み込んでいるように思うのですが、 主モジュール処理が開始して後に、その構文内で指定し インクルード(?)することも可能なのでしょうか? あと、 オープンイベントでソースコードをインクルードし そのままセーブすると、 インクルード状態が保存されるのでしょうか? もし仮にそうだとすると条件式でインクルード済みか判定しなければならず、 未インクルード状態を保たせる手間が出ちゃいますよね。 滝汗な感じします。(滝汗) (||| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ー ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄;)アウッ (※:http://www.facemark.jp/f-ase.htm より引用)
- airhead-no1
- ベストアンサー率48% (45/92)
たしかに Enum で定義した所で行数は減らないですね(^^; でも、関数の戻り値や変数定義の型として使えるので、Enumの方が便利かな~と あと、DLL化はExcelだけでは無理だから... Visual Studio .NET等でDLLとして作るしかないですね。
お礼
ひょとして構造体って奴ですか? 定数宣言だけでなく 初期値付き変数の宣言も できるみたいな感じですね。 ところで本題の、外部ファイルのお話ですけど 何とか追加アプリケーション無しで 読み込みファイルが作れない物でしょうか? 例えばテキストエディッタなどでできちゃうと 助かるのですが… 後、変数の入れ物を 定数に見せかけて使うのは 出来れば避けたいのですが… VBAの場合は書き換えができちゃいますよね… ? ご教示をお願い致します。
- airhead-no1
- ベストアンサー率48% (45/92)
意味づけをするならば Enum で定義した方が良いのでは? さらに それがDLL となっていれば 汎用的に使えるでしょう。 (Excel等からは参照設定で追加できて便利だし)
お礼
お心砕き有り難うございます。 >…らば Enum で定義し… 面白いですねこれ でもこれ言って良いかどうか… 行数減らなくない? (^_^)滝汗 >…れがDLL となっ… 非常に興味深いです、 思わずカプッ と食いついちゃいます。 正に入れ食いです。 (汗) DLL化はどうやるのですか?
お礼
有り難うございます、 ちょっと見てみます。
補足
こういうことですか? http://d.hatena.ne.jp/language_and_engineering/20090731/p1