【ExcelVBA入門】疑似的にcontinueするためのループ処理スキップ方法とは

こんにちは、フリーランスエンジニア兼ライターのワキザカ サンシロウです。

皆さんは、VBAでループ処理を途中でスキップする方法を知っていますか?

ループ処理では、無駄な処理を実行せずにスキップしたいケースはよくあります。

そこで今回は、

・処理をジャンプするためのGoToステートメントの使い方

といった基礎的なことから、

・ループ処理をスキップする方法

・ループ処理を途中で終わらせる方法

・ループ処理中にExcelが固まってしまった場合の対処方法

といった応用的な方法まで、徹底的に解説します!

スキップ処理を作るためのGoToステートメントとは

ループ処理をスキップする場合は、GoToステートメントを使います。

そのため、最初にGoToステートメントの簡単な使い方を解説します。

GoToステートメントを使うと、指定したラベル先処理をジャンプすることができます。

使い方:

上の例では、ラベル先の処理2は実行されますが処理1は実行されません。

このように、処理を途中でジャンプすることができます。

GoToステートメントの詳しい使い方については以下で詳しく解説しているので、気になる方は見てみてくださいね!

【VBA入門】GoToでスキップ(ラベル、ループ制御、エラー処理)
更新日 : 2019年4月19日

ループ処理をスキップする方法とは

次に、GoToステートメントを使ってループ処理をスキップする方法を解説します。

最初に、スキップしないループ処理のサンプルを用意しました。

スキップなしのループ処理サンプル:

実行結果:

変数iが1~10になるまでループして、iの値を出力する処理ですね。

次に、iが偶数のとき処理をスキップする処理を入れたサンプルがコチラです。

スキップ処理を入れたサンプルコード:

実行結果:

割り算の余りを計算するMod関数を使って、「i Mod 2 = 0」の条件で偶数を判定しています。

偶数判定しているIF文の中に「GoTo Continue」を書くことで、For文の最後に書いているContinueラベルまで処理をスキップしています。

このように、GoToステートメントを使えば、簡単に処理をスキップすることができます。

ループ処理を抜ける方法とは

ここまでスキップする方法を解説してきましたが、For文を終わらせて次の処理に移動したいケースもありますよね。

Exit For」をFor文の中に書くことで、簡単にFor文を終わらせることができます。

ループ処理の途中で処理を終わらせるサンプルコード:

実行結果:

この例では、iが5になった時にFor文の処理を終わらせています。

このように、ループ処理を途中で簡単に終わらせることができます。

GoToステートメントスキップExit For終了と覚えておくと、For文が使いやすくなるのでおすすめです!

ループ処理が重たくExcelが固まってしまった場合の対処方法

ループ処理を動かしていると重たい処理をループ処理で動かしてしまった場合や、条件を間違えて無限ループにしてしまった場合など、処理がとまらずExcelが固まってしまうケースがあります。

そのため、処理を強制終了する方法を覚えておくのがおすすめです!

処理を強制終了する方法については、以下で詳しく解説しています。

途中まで書いていたコードを消さずに処理を止める方法についても書いているので、知らない方は見てみるのがおすすめです!

【ExcelVBA入門】処理が固まってしまった場合に強制終了する方法とは
更新日 : 2018年8月29日

補足:VBAでループ処理をする方法3選

今回はループ処理にFor Nextステートメントを使って解説してきましたが、ループ処理は他にもあります。

For Nextステートメントとあわせて、WhileステートメントFor Eachステートメントを覚えておくとループ処理の幅が広がるのでおすすめです!

それぞれ以下のように使い分けることができます。

  • For Next:回数を指定してループ処理したい場合
  • While:指定の値に到達するまで処理をループしたい場合
  • For Each:配列の要素数やオブジェクトの数分処理をループしたい場合

3つのループ処理詳しい使い方については、以下記事で詳しく解説しているので見てみてくださいね!

【ExcelVBA入門】繰り返し処理をするための3つの方法を徹底解説!
更新日 : 2019年8月30日

まとめ

今回は、ループ処理の途中で処理をスキップする方法について解説しました!

ループ処理では、無駄な処理を実行せずにスキップしたいケースはよくあります。

GoToステートメントの使い方はとても簡単なので、ぜひ使ってみてくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

フリーランスエンジニア兼ライターのワキザカ サンシロウです。
ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説