以下のコードにおいて、モジュールレベル変数「N」の宣言で使用する空欄に入るステートメントを 選択肢より2つ解答しなさい。
Option Explicit
【 空欄① 】 N As Long
Sub Exam1()
N = 10
End Sub
Sub Exam2()
MsgBox N
' Nはこのプロシージャからもアクセス可能
End Sub

1.Public
2.Dim
3.Global
4.Private
正解
2、4
解説
【5章 変数と定数】
【モジュールレベル変数】
【変数のスコープ、モジュールレベル変数】
●変数には適用できる範囲が決まっています。
どの場所で変数を宣言したかやどの使用ステートメントによって変数の適用範囲が決まります。
適用範囲と使用したステートメントの表をまとめましたのでご確認ください。
変数 | 変数の適用範囲と使用ステートメント |
ローカル変数 | 【宣言場所】プロシージャ内で宣言する。
【適用範囲】宣言したプロシージャ内で適用 【使用ステートメント】Dimステートメント ・Dim 変数名 As 変数の型
|
モジュールレベル変数 | 【宣言場所】宣言セクションで宣言する。
【適用範囲】宣言したモジュールの全プロシージャで適用 *他のモジュールは適用範囲外です。 【使用ステートメント】Dim、Privateステートメント ・Dim 変数名 As 変数の型 ・Private 変数名 As 変数の型 |
パブリック変数 | 【宣言場所】宣言セクションで宣言する。
【適用範囲】宣言したモジュールや他のモジュールでも適用 【使用ステートメント】Publicステートメント ・Public 変数名 As 変数の型 |
●宣言セクションの位置とはOption Explicitからプロシージャ名までの間ことです。
Option Explicit
↑
宣言セクション範囲
↓
Sub Exam1()
【コード解説】
以下のコードにおいて、モジュールレベル変数「N」の宣言で使用する空欄に入るステートメントを 選択肢より2つ解答しなさい。
Option Explicit
Private N As Long
’Dimでもモジュールレベル変数になります。
Sub Exam1()
N = 10
’変数に値を代入する。
End Sub
Sub Exam2()
MsgBox N
' Nはモジュールレベル変数ですのでこのプロシージャからもアクセス可能です。
End Sub