よく使うステートメント

Exit ループやプロシージャを抜け出る

 繰り返しの処理を行う中である条件が満たされたとき、その繰り返し処理から抜け出すのに「Exitステートメント」が使われます。

Exit Do

Exit For

Exit Sub

それぞれについて解説します。

Exit Do

 5教科テストの結果表(合計点の高い順)があります。

合計点350点以上を合格とし、右の「合格者リスト」に書き出すマクロです。

Sub Ext01()

  Dim CD As Long ‘①

  Dim TLten As Long ‘②

  Dim RW As Long ‘③

  CD = Range(“B3”) ‘④

  TLten = Range(“I3”) ‘⑤

  RW = 3 ‘⑥

  Do While CD <> 0 ‘⑦

    If TLten < 350 Then ‘⑧

     Exit Do

    End If

    Cells(RW, 11) = Cells(RW, 2) ‘⑨

    Cells(RW, 12) = Cells(RW, 3) ‘⑩

    RW = RW + 1 ‘⑪

    TLten = Cells(RW, 9).Value ‘⑫

  Loop

End Sub

① CODEを代入する変数 型は数字

② 合計点を代入する変数 型は数字

③ 行番号を代入する変数 型は数字

④ 変数CDに結果表の1件目の「Code」を代入

⑤ 変数Tlten に結果表の1件目の「合計」を代入

⑥ 変数RWに結果表の1件目の「行番号」を代入

⑦ CDが 0 でない間は以下の処理を切り返す。

⑧ もし合計が350点未満になったら、このループから抜け出す

⑨ 合格者のコードを合格者リストに書き出す。

⑩ 合格者の名前を合格者リストに書き出す。

⑪ 次の行番号を変数RWに代入する。

⑫ 次の人の合計点を変数 Tlten に代入する。

Exit For

Sub Ext02()

  Dim TL As Long ‘①

  Dim P As Long ‘②

  TL = 0 ‘③

  For P = 1 To 100 ‘④

    TL = TL + P ‘⑤

    If TL > 300 Then ‘⑥

      Exit For

    End If

  Next P

  ‘⑦

  MsgBox P & “まで加算し合計が ” & _

TL & ” となり300を超えました。”

End Sub

① 合計数を代入する変数 型は数字

② For ~ Next文のカウンター変数 型は数字

③ 合計点を 0 にリセット

④ Pが 1 から 100 まで繰り返す

⑤ TL が1+2+3+・・・と加算されていく。

⑥ TL が300を超えたら、この For ~ Next文から抜け出る

⑦ メッセージで結果を表示する。

Exit Sub

 次のような「年齢入力」の画面があります。

年齢を入力し「OKボタン」を押すと、年齢に応じ「飲酒の可否」「選挙権の有無」が表示され、その後干支を求めるセルに移動します。

答えたくない場合「0」を入力、OKボタンを押すと、以下の処理は一切行わずこのプロシージャから抜け出ます。

Sub Ext_03()

  Dim NN As Long ‘①

  Dim ET As String ‘②

  NN = Range(“D2”) ‘

  If NN = 0 Then ‘④

    Exit Sub

  End If

  ‘⑤

  If NN < 18 Then

    Range(“D6”) = “ダメ”

    Range(“D7”) = “無し”

  ElseIf NN >= 18 And NN < 20 Then

    Range(“D6”) = “ダメ”

    Range(“D7”) = “有り”

  Else

    Range(“D6”) = “OK”

    Range(“D7”) = “有り”

  End If

  Range(“D9”).Select ‘⑥

End Sub

① 年齢を代入する変数 型は数字

② 干支を代入する変数 型は文字列

③ セル D2 に入力された年齢をNNに代入

④ もし NN が 0 ならば、このプロシージャから離れる。

⑤ NNが 0 でなければ、それぞれの年齢に応じて処理を行う。

⑥ 処理を行った後、干支を入力するセルに移動し入力を促す。

With ~ End With 同じオブジェクトの連続処理  同じオブジェクトに対して 複数の処理を連続して実行する場合、コードの一部を省略するWith ステートメントを使います。  共通...
On Error 実行時エラーの処理  プログラム実行中に何かのエラーが発生した場合、メッセージを表示して終了させるのに「On Error」ステートメントを使用します。 ...