次のコードは、変数Aをどのモジュールでも使用できるパブリック変数として宣言し、
変数Bはモジュール内のすべてのプロシージャで内でのみ使えるようにするモジュールレベル変数として宣言するマクロである。
空欄を埋める適切な語句を解答しなさい。
—————————————————
Module1
—————————————————
Option Explicit
【 ① 】 A As Long
【 ② 】 B As Long
Sub Exam1()
A = 150
B = 180
Call Exam2
End Sub
Sub Exam2()
Dim N As Long
N = A + B
MsgBox N
End Sub
——————————————-
Module2
——————————————-
Option Explicit
Sub Exam1()
A = 200
MsgBox "変数Aは" & A & "です"
End Sub
正解
【 ① 】public 【 ② 】dim
解説
【5章 変数と定数】
Public・・・ パブリック変数です。別のモジュールでも使用できる変数です。
Dim・・・ モジュールレベル変数です。宣言したモジュール内でのみ使用できる変数です。
【変数の適用範囲と使用ステートメント】
変数 | 変数の適用範囲と使用ステートメント |
ローカル変数 | 宣言したプロシージャ内適用
Dimステートメント ・Dim 変数名 As 変数の型 |
モジュールレベル変数 | 宣言セクションで宣言したモジュールの全プロシージャ適用
Dimステートメント ・Dim 変数名 As 変数の型 |
パブリック変数 | 宣言セクションで宣言したモジュールや別のモジュールで適用
Publicステートメント ・Public 変数名 As 変数の型 |
●宣言セクションの範囲
Option Explicit
↑
宣言セクション範囲
↓
Sub Exam1()
【コード解説】
——————————————-
Module1
——————————————-
Option Explicit
Public A As Long
' パブリック変数です。別のモジュールでも使用できる変数です。
Dim B As Long
' モジュールレベル変数です。宣言したモジュール内でのみ使用できる変数です。
Sub Exam1()
A = 150
B = 180
Call Exam2
' 別プロシージャを呼び出します。この時点でAは150、Bは180です。
End Sub
Sub Exam2()
Dim N As Long
' ローカルレベル変数です。宣言したプロシージャのみ使用できる。
N = A + B
' パブリック変数Aとモジュールレベル変数Bの合計を計算します。
MsgBox N
' 計算結果(330)が表示されます。
End Sub
——————————————-
Module2
——————————————-
Option Explicit
Sub Exam1()
A = 200
' パブリック変数Aに新しい値を代入します。
MsgBox "変数Aは" & A & "です"
' ここでは"A = 200"が表示されます。
End Sub