私はお互いに独立した複数のサブがあるExcelファイルを作成しています。しかし、彼らは依然として常に同じ値を持つ同じ変数を使用します。したがって、私は変数をグローバルに定義したいと思いますが、私が非常に簡単に見つけたのは、変数をグローバルに宣言することだけでした。私は何をしなければならないのですか?私は変数を最初からすぐに値で埋めることもできますか?下の例のように、変数を最初から定義することは可能ですか? (私はそれが不可能であると私は間違っていると信じていますか?)値を持つVBAのグローバル変数
私はあなたの助けに感謝します!
トーマス
(シートはMSのVisual Basic Editorで記載されています)Public s1, s2, s3 As Worksheet
Public array1, array2 As Variant
s1 = ThisWorkbook.Worksheets("Sheet 1")
s2 = ThisWorkbook.Worksheets("Sheet 2")
s3 = ThisWorkbook.Worksheets("Sheet 3")
array1 = Array(3, 5, 6, 7, 5)
array2 = Array(8, 9, 10, 11, 12)
Sub code1()
...
End Sub
Sub code2()
...
End Sub
1つのオプションは、クラスでそれらを配置すること、および 'に、Class_Initialize()'でそれを初期化します。あなたのサブシステムがマクロとして使用されることを意図されている場合、クラス機能のための "ラッパー"としてそれらを使用することができます。 – Comintern
Workbook open eventまたはauto_open subが行います。 – cyboashu
FWIWでは、ワークシートの参照を格納するのではなく、ワークシートのCodeNamesを使用することもできます。つまり、 's1.Foo'の代わりに' Sheet1.Foo'を使用します。オブジェクトモデルはそれらを無料で提供します。 – Comintern