質問: vba モジュールで共通に使う変数の宣言方法 vbaにてプログラミングを覚えている者です。 現在、いくつかのモジュールがあり、それぞれdimにて宣言している共通の変数があります。 いくつものプロシージャに毎回宣言せず、どこかでひとまとめにしたいと思い、色々と調べています。 例えば、 dim pic1 as picture dim cell1 as string dim pass1 as string dim pic2 as picture などです。 dimのほかに、publicの宣言などがありますが、いま一つ使い方がピンときません。 共通宣言する変数をひとつのモジュールとして登録し、活用できると、いざ変更となったときに その内容だけ置き換えればいいと思うのですが、みなさんはどのように宣言をしていますか? (例えば、stringなどは各モジュールで変更するのが大変だと思うのですが・・・) ヒントを教えていただければと思います。よろしくお願いします。
回答: >モジュールで共通に使う変数の宣言方法 モジュールの先頭に書いたdimで宣言すると,そのモジュールの中だけ(に記入されている各プロシジャ)でパブリックになります。 モジュールの先頭に書いたpublicで宣言すると,全モジュール(に記入されている各プロシジャ)に対してパブリックになります。 「変数宣言モジュール」のようにモジュールを越えて参照させたいという事なので,dimではなくpublicで宣言します。 module1: public x as variant module2: sub macro1() ’先に実行する x = "abc" end sub module3: sub macro1() msgbox x end sub