次のコードは、
対象のセル範囲に負の数があれば、メッセージボックスに”-”と表示後、繰り返し処理を終了し、"0"が見つかった場合にはメッセージは表示後、プロシージャを終了するマクロである。
空欄に入る適切な語句を解答しなさい。
Sub Exam1()
Dim cell As Range
Dim sourceRange As Range
Set sourceRange = Worksheets("Sheet1").Range("A1:A10")
For Each cell In sourceRange
If cell.Value < 0 Then
MsgBox "-"
Exit 【 ① 】
ElseIf cell.Value = 0 Then
MsgBox "0"
Exit 【 ② 】
End If
Next cell
End Sub
正解
【 ① 】for 【 ② 】sub
解説
【3章 ステートメント】
【Exitステートメント】
●Exit ForはFor Each…Nextステートメントを終了させ、
Exit SubはSubプロシージャを自体の終了させます。
なおFunctionプロシージャを終了させる際はExit Functionと記述します。
【コード解説】
Sub Exam1()
Dim cell As Range
'オブジェクト変数の型宣言をする。
Dim sourceRange As Range
'オブジェクト変数の型宣言をする。
Set sourceRange = Worksheets("Sheet1").Range("A1:A10")
'オブジェクト変数に指定のオブジェクトを格納する。
For Each cell In sourceRange
’①指定のセル範囲からメンバーのセルをひとつずつ取り出す。
If cell.Value < 0 Then
'Ifステートメント条件分岐、条件に合うときは以下の処理を行う。
MsgBox "-"
'値が負の数の時メッセージを表示する。
Exit For
'繰り返し処理を終了する。
ElseIf cell.Value = 0 Then
'ElseIfステートメント、条件に合うときは以下の処理を行う。
MsgBox "0"
'値が0の時メッセージを表示する。
Exit Sub
'マクロを即時終了する。
End If
Next cell
'グループのメンバー最後まで①へ戻り繰り返す。
End Sub