Vba コードで goto ステートメントを使用するにはどうすればよいですか?
VBA GoTo ステートメントは、コード実行がプロシージャ内の特定の行に移動するのに役立ちます。簡単に言えば、goto ステートメントを使用すると、VBA は指定した特定の行にジャンプします。たとえば、2 行目にジャンプするように指定した場合、 go はその行にジャンプします。
コードで VBA GoTo ステートメントを使用する方法
- まず、goto ステートメントを使用する必要があります。
- その後、VBA が goto からどこに移動するかを定義する必要があります。
- 次に、この場所を作成する手順でタグを作成します。
- 最後に、実行するコード行を追加します。
Sub vba_goto() GoTo Last Range ("A1"). Select Last : Range ("A12"). Select End Sub
コードを繰り返す GoTo
go to ステートメントを使用して、一連の条件を使用してコードを繰り返すこともできます。
Sub goto_repeat() Dim iMessage As String Question: iMessage = InputBox("what's the day today?") If iMessage <> "tuesday" Then MsgBox ("wrong answer, try again.") GoTo Question Else MsgBox ("that's the right answer.") End If End Sub
上記のコードを実行すると、曜日の名前を尋ねられ、「火曜日」以外を入力すると質問が繰り返されます。コードを見ると、 goto ステートメントとif ステートメントを使用する必要があることがわかります。
ここで、ユーザーが正解以外の値を入力すると、goto ステートメントによって VBA にコードの繰り返しが強制されます。 (ただし、このタイプのコードを使用する場合は、無限ループが発生する可能性があるため、常に細心の注意を払う必要があります。
VBA 最後に移動
goto ステートメントを使用してサブルーチンを終了することもできます。
上記のコードでは、end ステートメントの直前に「last」タグを使用しており、VBA が GoTo ステートメントに到達すると、VBA はプロシージャの最後の「Last」にジャンプします。
別のサブルーチンの行に移動する GoTo ステートメント
Going to ステートメントは、VBA をある場所から別の場所にジャンプさせるのに非常に便利ですが、モジュール内の別のプロシージャにジャンプさせることはできません。
VBAとは
関連するチュートリアル
- VBA ループ (初心者から上級者まで)
- VBA 選択ケース
- Excel VBA Do While ループおよび (Do Loop While) – ガイド
- Excel で VBA を使用してすべてのシートをループする
- VBA を使用した範囲のループ (列、行、および UsedRange)