- ベストアンサー
グローバル変数などについて
Option Explicit Dim str1 As String '・・・(1) Sub テスト() Dim str2 As String '・・・(2) str1 = "テスト1" str2 = "テスト2" MsgBox str1 MsgBox str2 End Sub (1)はグローバル変数と言うとの事ですが (2)は何変数と言うのでしょうか? ローカル変数ですか? また、(1)がdimではなく、 Public str1 As String となった場合でも、 プロシージャーの外にあれば、グローバル変数と言うのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
1はモジュールレベルで宣言された変数、またはパブリック変数と言います。 2はプロシジャレベルで宣言された変数と言います。ローカル変数という言い回しが使われる事も確かにあります。 表に出したdimで宣言された変数はモジュールレベルでパブリックなので、他のモジュールにまでは範囲がありません。 publicステートメントで宣言された変数は、プロジェクトの全てのモジュールから参照できるパブリック変数です。 Module1: dim a public b sub macro1() ’最初に実行する a = 100 b = 200 end sub sub macro2() debug.print a ’モジュール内ではどちらもパブリックなので参照される debug.print b end sub module2: sub macro3() debug.print a ’aはmodule2に対してパブリックではないので参照できない debug.print b end sub
お礼
大変わかりやすい説明ありがとうございます。 自分で検証してみたところ、同じようになりました。