EXCEL VBA Goto ステートメント(行ラベル・行番号)指定ラベルへジャンプ

 

 

EXCEL VBA Goto ステートメント(行ラベル・行番号)指定ラベルへジャンプ

 

 

 ●はじめに

今回説明するのは、指定した行ラベル(指定場所)へ処理をジャンプする事が出来るGotoステートメントの利用方法を説明いたします。同じSubプロシージャ内なら
使用できますので、処理の流れを一気にジャンプしたい場合は、Gotoステートメントは、とても便利な機能です。しかし、多用する場合は、プログラムが複雑になりますので、注意が必要です、それでは、サンプルプログラムを交えて順番に説明いたします。

●【On Error Gotoの使い方については、下記の参照して下さい】

EXCEL VBA On Error Goto の使い方

 

 

 ●書式の説明

● Gotoステートメントを利用するには、下記の通りに設定を行います。

Goto Line

※Lineには、行ラベル又は、行番号を指定します。

【使用例】

【使用例の詳細説明】

※Gotoステートメントを利用した使用例です。IF文で500以下と500を超えるかで判定させます。ここで条件により、ジャンプ先が異なる場所へ飛びますが、Jump01に飛んだ場合は、Jump01とJump02共に実行されます。Jump02へ飛んだ場合は、Jump02のみ実行されます。このように、プログラム(コード)位置を飛ばすことにより、実行するプログラムを使い分ける事が出来ます。

【注意点】
・Gotoステートメントは、気軽にラベル先へジャンプする事ができますが、多用することによりプログラムが分かりにくくなります。また、ループの様に利用する場合は、永久ループにならない様に抜け出しの条件設定を忘れないでください。

 

 

 

 

Gotoステートメントを利用してデータを集計(Gotoでループ処理)

 

 

 ●プログラム説明 (サンプル①)

下記のサンプルプログラムは、Gotoステートメントを利用してデータを集計(Gotoでループ処理)を行うサンプルプログラムです。C列に給与所得としてデータが登録されています。このC列に登録されているデータを集計して、C列の最終行に合計値を記載します。ただし、C列には数値以外のデータも登録されているので、数値のみ集計されるようにIsNumericを利用しています。

【プログラムの流れ】

① C列のセルが空白セルでループから抜ける:Jump01へ
② C列のセルの値が数値が判定します。(文字の場合は、スキップ)
③ C列のセルの値が数値の場合は、数値を集計
④ ループから抜けて、集計値をC列の最終行に合計値として表示

 

 

 

 

 

●実行前~実行後 ※プログラム実行後、C列の給与所得の数値を集計して、C列の最終行に合計値表示します。
(画面クリックして拡大)

 

 

 

Gotoステートメントを利用して条件に応じてジャンプ(行ラベルを実行)

 

 

 ●プログラム説明 (サンプル②)

下記のサンプルプログラムは、Gotoステートメントを利用して条件に応じて、各行ラベルへジャンプし各処理を実行するサンプルプログラムです。下記のサンプルプログラムは、ランダムで数値(1~5)を生成して、生成した数値に応じて行ラベルにジャンプするサンプルプログラムです。ランダムの数値に応じで、おみくじの結果を表示します。

【プログラムの流れ】

① 数値をランダムで生成(1~5)
② 生成された数値に応じてジャンプします。(行ラベルへジャンプ)
③ ジャンプ先に応じておみくじメッセージを表示します。

 

 

 

 

 

 ●実行前~実行後 ※プログラム実行後、ランダムで生成した数値に応じて、くじ引きの結果が表示されました。
(画面クリックして拡大)

 

 

 

Gotoステートメントを利用して複数(4種類)の処理プログラムを複数条件(15種類)に応じてジャンプ(行ラベルを実行)

 

 

 ●プログラム説明 (サンプル③)

下記のサンプルプログラムは、Gotoステートメントを利用して複数(4種類)の処理プログラムを複数条件(15種類)に応じてジャンプするサンプルプログラムです。複数のプログラムを実行する際は、CALLを利用した方が便利ですが、Gotoステートメントでサンプルプログラムを作成してみました。

【プログラム詳細説明】
・4種類の処理①~④プログラムがあります。
・1~15までの数値に応じで、4種類の実行するプログラムを使い分けます。
例として15は、処理①~④を実行 8は、処理④のみ実行 3は、処理①②を実行します。

【プログラムの流れ】
① メッセージボックスが表示されて1~15までの数値を入力します。
※入力した数値に応じで、処理①~④の実行するプログラムが異なります。
② メッセージボックスに入力した数字が1~15以外の場合は、プログラム終了
③ 入力された数値により、処理①~④が実行されます。
④ 処理①~④が実行されます。入力された数値に応じて処理内容は、異なります。
⑤ ワークシート処理結果が表示され①へジャンプします。

 

 

 

  ●実行前~実行後 ※プログラム実行後、インプットボックスが表示されて、1~15までの数値を入力します。入力値により、4種類の処理プログラムを複数条件(15種類)に応じて実行処理されました。
(画面クリックして拡大)

 

 

 

最後まで、ご覧いただきまして誠に有難うございました。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。