|
▼key さん:
こんばんは。
>VBAで、book1.xlsからbook2.xlsに定義してある
>定数を参照する方法はありますか?
そもそも定数を参照するという表現自体が間違いだと思いますが・・・。
方法としては、参照設定を行えば可能です。
新規ブック(Book1)の標準モジュールに
'==================================================
Public Const refdata = "参照できた!!"
と記述してください。
プロジェクトエクスプローラーで当該プロジェクトを選択した状態で
「ツール」---「VBAProjectのプロパティ」をクリックすると
VBAProjectのプロパティダイアログが表示されます。
全般タブのプロジェクト名を「Consttest1」に変更してOKをクリックして下さい。
適当なフォルダに「Consttest1.Xls」というブック名で保存してください。
プロジェクトエクスプローラーで別の新規ブック(Book2)を選択して状態で
「ツール」---「参照設定」とクリックし、参照設定ダイアログを表示させ
先ほどの「Consttest1」にチェックを入れてOKをクリックしてください。
このBook2の標準モジュールに
Sub main()
MsgBox refdata
End Sub
このmainを実行すれば、consttest1.xlsの定数Refdataは使用出来ます。
まっ、なさりたい事とは違うと思いますが、確認はしてみて下さい。
>
>定数を返す関数を作って間接的に参照する方法はわかりますが
>定数を直接参照する方法がわかりません。
>
>過去ログ12478はみましたが直接参照する方式は
>とらなかったようで・・・。
できませんからねえ・・・。
Const で宣言する定数ってね、
VBAでは例えば、
Public Const refdata = "参照できた!!"
という記述で
メモリー上のどこかの番地(アドレス)に
Address DATA
xxxx 参照できた!!
なんて登録されるわけではありません
(このように設定される言語もありますけど、Constとは意味が違うし、VBAでは
出来ないと思います)。
コンパイル時にPコード上のRefdataを"参照できた!!"に置き換えるだけです。
つまり、Refdataという実体はありません。
変数とは違います。
よって、12478のように定数を入れる変数や関数が必要になるのです。
|
|