次のコードは、引数を使わないで変数Aを共有するマクロである。
以下の【 A 】~【 C 】のどの場所で変数を宣言するのが適切か解答しなさい。
変数の宣言: Dim A As Long
【 A 】
Sub Exam1 ()
【 B 】
A = 20
Call Exam2
End Sub
Sub Exam2()
【 C 】
MsgBox A
End Sub
正解
【 A 】
解説
モジュール内のすべてのプロシージャで使用できる変数をモジュールレベル変数と呼びます。モジュールレベル変数を宣言する場所は宣言セクションです。
モジュールレベル変数の宣言利用すれば、2つ目のプロシージャのSub Exam2(A As Long)などカッコ内に引数を指定しなくても複数のプロシージャで値を共有できます。
【コード解説】
Dim A As Long
' 変数Aをモジュール全体で共有するため、【A】の位置で宣言します。
Sub Exam1()
A = 20
' 変数Aに20を代入しています。
Call Exam2
' プロシージャ「Exam2」を呼び出しています。
End Sub
Sub Exam2()
MsgBox A
' MsgBoxを使用して変数Aの値を表示します。
End Sub
スポンサーリンク
スポンサーリンク