スタンダード 模擬問題

Excel VBA スタンダード 模擬問題 ① 第2問 1章-2

次のコードは、引数を使わないで変数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