スタンダード 模擬問題

【ランダム順出題】 Excel VBA スタンダード 模擬試験 ⓵ 第4問

次のコードは、引数を使わず変数Cを共有し、初期値を設定するマクロである。

【 A 】~【 D 】のどの場所で以下の変数の宣言と初期化を行うのが適切か解答しなさい。

変数の宣言と初期化: Dim C As Long

Option Explicit

【 A 】

Sub Exam1()

【 B 】

 C = 10

 Call Exam2

End Sub

Sub Exam2()

【 C 】

 C = C + 5

 Call Exam3()

End Sub

Sub Exam3

【 D 】

 MsgBox “Cの値は ” & C

End Sub

 

正解

【 A 】

解説

【1章 プロシージャ】

この問題では、引数を使わずに複数のプロシージャで変数Cを共有し、初期値の設定や更新を行います。

  • 変数Cを共有するためには、Cをモジュールレベルで宣言する必要があります。

モジュールレベル変数の宣言を使用すれば、同じモジュール内の別のプロシージャでも、

Sub Exam2(C As Long)のようにカッコ内に引数を指定しなくても、

その変数を使うことができます。

excel-vba-standard-test-procedure

【コード解説】

Option Explicit

… 変数Cをモジュールレベルで宣言し、プロシージャで共有可能にする。

 Dim C As Long

Sub Exam1()

  C = 10

 … 変数Cに初期値を設定する。

 Call Exam2

… Exam2プロシージャを呼び出す。

End Sub

Sub Exam2()

  C = C + 5

 … 変数Cの値を更新する。

   Call Exam3

… Exam3プロシージャを呼び出す。

 End Sub

Sub Exam3

 … 変数Cの現在の値を表示する。

 MsgBox “Cの値は” & C

End Sub