■No45484 (RT さん) に返信
> VBでグローバル変数を使いたいのですが、
「お勧めはしませんが」と前置きをした上で・・・
> モジュールの中でpublic宣言した変数をクラスから、参照したいのですが、
> どのように参照するのかわかりません。何か宣言のようなものが必要なのでしょうか?
モジュールの中で既に宣言してあるなら、後は普通の変数と同じように使うだけです。
1つのプロジェクト内の話ですよね?
例えばMoudule1.vbに以下のようにモジュールを定義したとします。
Module Module1
Public グローバル変数 As String
End Module
同じプロジェクト内なら、
x = グローバル変数 ' xは適当な変数です。特に意味はありません
や
グローバル変数 = "あいう"
のように使用できます。
> また、クラス内でsheredで宣言してする方法と、どのような違いがあるのでしょうか?
Public Class Class1
Public Shared グローバル変数 As String
End Class
とあった場合、これを使用するには、
x = Class1.グローバル変数 ' xは適当な変数です。特に意味はありません
や
Class1.グローバル変数 = "あいう"
のように使用します。「Class1.」で修飾してやる必要があります。
あるいは、使用したいコードを書いているファイルの先頭で
Imports Class1
のように記述しておくことで、Moduleで宣言した場合と同様に
x = グローバル変数 ' xは適当な変数です。特に意味はありません
や
グローバル変数 = "あいう"
のように書くこともできます。
ModuleはSharedなメンバー(ローカルでない変数、プロパティ、メソッドなど)だけを持つClassとほぼ等価です。
Moduleの場合はモジュール名で修飾することなくそのメンバーにアクセスできる点が異なります。