次のマクロを実行したとき、D列に"〇"が入力されるのはワークシートの【 ① 】行目である。
空欄に入る数字を解答しなさい。
Sub Exam1()
Dim i As Long
For i = 2 To 11
If Cells(i, 1) <> "関東" Then
If Cells(i, 2) = "大阪" Or Cells(i, 2) = "福岡" Then
If 850 < Cells(i, 3) And Cells(i, 3) < 1000 Then
Cells(i, 4) = "○"
End If
End If
End If
Next i
End Sub
正解
【 ① 】11
【7章 ステートメント】
解説
・A列の値が「関東」ではない場合かつ
・B列の値が「大阪」または「福岡」の場合かつ
・C列の値が850より大きく、かつ1000未満の場合に条件を満たします。
これらのの条件を満たしているのは11行目のみです。
【Ifステートメント And条件・Or条件・ネスト、並立】
●Ifステートメント1行And条件
If ① And ②Then…①かつ②の時は(And条件)処理を実行する。
処理
End If
●Ifステートメント1行Or条件
If ① Or ②Then…①あるいは②の時は(Or条件)処理を実行する。
処理
End If
●Ifステートメントのネスト(入れ子) And条件
ネストとなっているときはAnd条件です。
・And条件ネストの記述
If 条件① Then
If 条件② Then ①かつ②の時は(And条件)処理を実行する。
処理
End If
End If
●Ifステートメントの並立Or条件
並立となっているときはOr条件です。
・Or条件並立の記述
If 条件① Then
If 条件②Then ①あるいは②の時は(Or条件)処理を実行する。
処理
End If
End If
【コード解説】
Sub Exam1()
Dim i As Long
' iを行番号として使用するための変数を宣言します。
For i = 2 To 11
' ①2行目から11行目までのセルを順に処理します。
If Cells(i, 1) <> "関東" Then
' A列の値が「関東」ではない場合に条件を満たします。
If Cells(i, 2) = "大阪" Or Cells(i, 2) = "福岡" Then
' B列の値が「大阪」または「福岡」の場合に条件を満たします。
If 850 < Cells(i, 3) And Cells(i, 3) < 1000 Then
' C列の値が850より大きく、かつ1000未満の場合に条件を満たします。
Cells(i, 4) = "○"
' 条件をすべて満たした場合、D列に「〇」を入力します。
End If
End If
End If
Next i
' ①へもどり終了値まで、繰り返し処理を行います。
End Sub