Excel VBA ベーシック 模擬問題 模擬試験

Excel VBA ベーシック 模擬問題 第9問  5章-3

変数に関する説明として間違っているものを、次の中から1つ選択しなさい。

 

1. 変数の適用範囲は、ローカル変数は、宣言したプロシージャ内、モジュールレベル変数は、宣言セクションで宣言したモジュールの全プロシージャ、パブリック変数は宣言セクションで宣言したモジュールや別のモジュールも適用範囲である。

 

2.変数の宣言は、ローカル変数はプロシージャ内でDimステートメントを使い宣言する。
モジュールレベル変数は宣言セクションでDimかPrivateステートメントを使い宣言し,
パブリック変数は宣言セクションでPublicステートメントを使い宣言する。

 

3.プロシージャ終了後の変数の初期化について、ローカル変数はプロシージャの終了後に変数の値が必ずクリアされる。

一方モジュールレベル変数、パブリック変数にプロシージャ終了後に値を保持することがあり必ず変数がクリアされるとは限らない。

 

4. プロシージャ終了後の変数の初期化について、ローカル変数はプロシージャの終了後に変数の値が必ずクリアされるが、モジュールレベル変数はExit Subでプロシージャを終了させると値はクリアされる。

 

正解

4

解説

【5章 変数と定数】

ローカル変数はプロシージャ終了後に値がクリアされるのは正しいですが、モジュールレベル変数はプロシージャ終了後でも値を保持します。

したがって、「Exit Subでプロシージャを終了させると値がクリアされる」という記述は誤りです。

モジュールレベル変数の値は、明示的に再初期化するか、「End」などでコード実行が完全に終了するまで保持されます。