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

Access VBA ベーシック 模擬問題 ① 第10問 4章

以下のコードを実行した際、最終的にメッセージボックスに表示される回数として最も適切なものはどれか。以下の選択肢より1つ解答しなさい。

Sub Exam1()

 Dim i As Long

 Dim j As Long 

For i = 1 To 3

  For j = 1 To 2

  MsgBox "i=" & i & ", j=" & j & " 回目のメッセージです。"

  Next j

 Next i

End Sub

 

1.2回

2.3回

3.5回

4.6回

 

正解

4

解説

【4章 ステートメント】

【繰り返し処理をネストする】

For…Nextステートメント…マクロ全体の中で指定の初期値から終了値までの範囲で、繰り返し処理をするステートメントです

初期値から終了値まで増減値に指定がない場合、1つずつ増やし繰り返し処理を行います。

ネスト構造にすると繰り返し処理の中で、さらに繰り返し処理を記述することができます。

*本問題では①の「1」繰り返し処理の中で②「1から2」の繰り返しを行います。

 

【コード解説】

以下のコードを実行した際、最終的にメッセージボックスに表示される回数として最も適切なものはどれか。以下の選択肢より1つ解答しなさい。

Sub Exam1()

 Dim i As Long

 Dim j As Long 

For i = 1 To 3

’①開始値かた終了値まで繰り返し処理をする。

  For j = 1 To 2

’②開始値かた終了値まで繰り返し処理をする。

  MsgBox "i=" & i & ", j=" & j & " 回目のメッセージです。"

' メッセージボックスが表示される。

  Next j

’終了値まで①へ戻る。

 Next i

’終了値まで②へ戻る。

End Sub

VBA Basic ステートメント

1.2回

誤り。

①のループと②のループの両方が実行されるため、合計回数は2回ではありません。

2.3回

誤り。

②のループが①のループの繰り返しごとに完全に実行されるため、合計回数は3回ではありません。

3.5回

誤り。

各ループの繰り返し回数を単純に足し合わせるだけでは、正しい結果は得られません。

4.6回

正しい。

For… Next ステートメントは入れ子構造(ネスト)にすることができ 、この場合、①のループ(iが1から3まで)が3回、そのそれぞれの中で②のループ(jが1から2まで)が2回実行されます。
したがって、実行されるMsgBoxの合計回数は 3×2=6 回となります。