以下のコードを実行した際の結果として、最も適切なものはどれか。
以下の選択肢より1つ解答しなさい。
Sub Exam1()
Dim N(2) As String
Dim A As Variant
N(0) = "りんご"
N(1) = "みかん"
N(2) = "バナナ"
For Each A In N
MsgBox A
Next A
End Sub
1.メッセージボックスが2回表示され、その内容は配列の要素の一部である。
2.メッセージボックスが3回表示され、その内容は配列の全ての要素であるが、表示される順番は保証されない。
3.メッセージボックスが3回表示され、その内容は「りんご」「みかん」「バナナ」の順に確実に表示されるものである。
4.コンパイルエラーが発生し、配列をFor Each…Nextステートメントで処理することはできない。
正解
2
解説
【4章 ステートメント】
【For Each…Nextステートメント】
● For Each…Next ステートメント
構文:For Each 変数 In グループ名 … グループから一つずつ取り出して操作する。
変数の操作
Next 変数…次のグループのメンバーを取り出す。
【コード解説】
以下のコードを実行した際の結果として、最も適切なものはどれか。
以下の選択肢より1つ解答しなさい。
Sub Exam1()
Dim N(2) As String
' 0から2までの3つの要素を持つ配列を文字列型で宣言する。
Dim A As Variant
’変数AをVariant型で宣言する。
N(0) = "りんご"
’インデックス番号0に「りんご」を格納する。
N(1) = "みかん"
’インデックス番号1に「みかん」を格納する。
N(2) = "バナナ"
’インデックス番号2に「バナナ」を格納する。
For Each A In N
’①For Eachステートメントで配列Nグループの中から1つずつ格納された値を取り出す。
MsgBox A
' ここで値をメッセージで表示します。
Next A
’①へ戻り次の格納されたグループの値を取り出す。
End Sub



1.メッセージボックスが2回表示され、その内容は配列の要素の一部である。
誤り。
配列N(2)は3つの要素を持つため、メッセージボックスは3回表示されます。
2.メッセージボックスが3回表示され、その内容は配列の全ての要素であるが、表示される順番は保証されない。
正しい。
For Each…Nextステートメントは、配列のすべての要素に対して繰り返し処理を実行しますが、処理を行う順番を指定することはできません 。
そのため、メッセージボックスは3回表示され、配列の全要素が表示されますが、その順序は保証されません。
3.メッセージボックスが3回表示され、その内容は「りんご」「みかん」「バナナ」の順に確実に表示されるものである。
誤り。
For Each…Nextステートメントは処理を行う順番を指定できないとされています。
4.コンパイルエラーが発生し、配列をFor Each…Nextステートメントで処理することはできない。
誤り。
For Each…Nextステートメントは配列の各要素に対して処理を繰り返すために使用できるため、コンパイルエラーは発生しません 。