このサイトはCocoonを使っています。現在「ミックスブルー [作者: y.hiroaki氏]」スキンを適用中です(^^)/

Excel VBA GoToステートメント(初心者向け21)

スポンサーリンク

GoToステートメントですね。今回もしっかり勉強しま~す(^^)

よろしくお願いしますm(_ _)m

くるみこ
くるみこ

今回で分岐処理第3回目ですね!
GoToステートメントはプロシージャ内の指定行に無条件で分岐できるというものです。注意点もあるので、しっかり覚えましょう(^^)

前回のおさらいはこちらの記事です(^^)/ 下のカードをクリックすれば開きます

くるみこ
くるみこ

前回記事でわかったことは
・Select Case ステートメントの使い方がわかりました
To キーワード と ls キーワードの使用例がわかりました
・入れ子に(ネスト)する場合の注意点がわかりました

【この記事でわかること
GoTo ステートメントの使い方がわかります

GoTo ステートメントを使用する場合の注意点がわかります

スポンサーリンク

GoTo ステートメント

プロシージャ内の指定行に無条件で分岐します

GoTo ステートメントの構文

構文
GoTo

必要とされるの引数は、どのような行ラベルでも、”行番号“でもかまいません

行番号“は、古いバージョンとの互換性のために維持されている代替構文です
 現実的に使用する場合は、行ラベルを使います

ラベル名は、行の先頭に ラベル名: のように入力します。これでその行にラベルを付けられます
ステートメントは、GoTo ラベル名 (:コロンは不要)のように入力します

GoTo ステートメントの注意点

GoTo ステートメントで分岐できるのは、同じプロシージャ内の行に限られます
GoTo ステートメントが多すぎる場合、コードの読み込みやデバッグが困難になります
可能な場所では、安易に GoTo ステートメントを使用せず、構造化されたコントロールステートメント (Do…LoopFor…NextIf…Then…ElseSelect Case) を使用しましょう

GoTo サンプルコード

Option Explicit
'GoToステートメントの使用例サンプル
Sub GotoSample()
    Dim Number As Long
    Dim MyString As String
    
    On Error GoTo ErrLine    '数字以外が入力された場合0にするため
    Number = InputBox("整数「1」を入力してください!" & vbCrLf & _
            "「1」以外を入力した場合の動作も確認できます!", "GoTo_TEST") '入力要求
    
    '入力値を調べ動作をGoToステートメントで分岐します
    If Number = 1 Then GoTo Line1 Else GoTo Line2
    
    MsgBox "このメッセージは表示されないはず!"

Line1:
    MyString = "入力された数字は" & Number & "でした!"
    GoTo LastLine       'Line2:を飛ばし、LastLine:ラベルにジャンプします

Line2:
    '入力値が「1」以外の場合ここへ飛んできます
    MyString = "入力された数字は1ではありません!" & Number & "でした!"

LastLine:
    MsgBox MyString     '結果メッセージを表示する
    Exit Sub            'ErrLine:に進ませないためここでExitします

ErrLine:
    'エラー発生時の処理
    MsgBox "数字以外が入力されました!再入力してください!"
    Resume              'エラー発生箇所へ戻る

End Sub

・7行目で、エラー発生時に28行目の ErrLineラベル にジャンプするように設定しています
・8行目で、インプットボックスを表示して整数の入力を要求し入力値をNumberに代入
・12行目、If ステートメントで入力値を調べて GoTo ラベルで動作を分岐させています
・18行目で、GoTo LaseLineラベルで、Line2:をジャンプさせています
・26行目は、次の行へ処理が移らないように Exit Sub でプロシージャを終了させています
・28行目以降は、ErrLine:にはエラー処理が記述されています。再入力を促すメッセージを出して Resume でエラー発生個所(8行目)へ戻すようにいしています

スポンサーリンク

まとめ(おわりに)

くるみこ
くるみこ

は~い! GoToステートメントの説明はここで終了です!
使い方は理解できましたか? しっかり覚えてくださいね(^^)

はい! 使い方がよくわかりました(^^)
つい使ってしましそうですが、なるべく使わないで済むように勉強していきたいと思います(^^ゞ

くるみこ
くるみこ

はい。これで条件分岐の方法も終了です!
ここまでよく勉強について来てくれたので、今までの部分をマスターすれば初心者は卒業と言ってもいいでしょう! しっかり復習してくださいね!
今後も継続しますが、準備しますので少し待っていてね(^^)/

わかりました。しっかり復習してマスターするように努力します!

まとめと感想など

・GoTo ステートメントの使い方がわかりました
GoTo ステートメントは便利だけど多用は禁物ということがわかりました

マクロ(VBA)を実行する際は必ずバックアップを取ってから行ってください
・マクロ(VBA)は実行後にファイルを保存すると元に戻すことはできません!
・実行後にファイルを保存せず終了すれば、実行前に戻すことができます!


ブログランキングに参加しています(^^)応援よろしくお願いしますm(_ _)m

今後の記事について

今回の記事はいかがだったでしょうか。皆さまのお役に立てたなら幸いです(^^;
当面は「初心者向けマクロVBA」の記事を継続して書いていきます

【検討中の今後の記事内容は・・・・・】
・実務に役立つものを提供できるよう現在検討中です
・その他雑記的に「小ネタなどいろいろ」・・・・・
・今後の記事にもご期待ください(^^)/

記事のサンプルファイルをダウンロードできます

今回の記事のサンプルをダウンロードできるようにしています
過去の記事で使用したサンプルファイルがダウンロードできるページを設置しています
こちら(このリンク先)からご利用ください

スポンサーリンク

スポンサーリンク