スタンダード 模擬問題

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