Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


45570 / 76732 ←次へ | 前へ→

【36155】Re:他のブックの定数を参照するには
発言  ichinose  - 06/3/22(水) 21:18 -

引用なし
パスワード
   ▼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のように定数を入れる変数や関数が必要になるのです。

9 hits

【36151】他のブックの定数を参照するには key 06/3/22(水) 19:56 質問
【36155】Re:他のブックの定数を参照するには ichinose 06/3/22(水) 21:18 発言
【36169】Re:他のブックの定数を参照するには key 06/3/23(木) 14:58 お礼

45570 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free