スタンダード 模擬問題

Excel VBA スタンダード 模擬問題 第3章 第1問 公開問題

次のコードは、

対象のセル範囲に負の数があれば、メッセージボックスに”-”と表示後、繰り返し処理を終了し、"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

excel-vba-standard-test-statement
正解

【  ①  】for 【  ②  】sub

解説 

【3章 ステートメント】

【Exitステートメント】

Exit ForはFor Each…Nextステートメントを終了させ、

Exit SubはSubプロシージャを自体の終了させます。

なおFunctionプロシージャを終了させる際はExit Functionと記述します。

excel-vba-standard-test-statement

【コード解説】

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