【ExcelVBA入門】繰り返し処理をするための3つの方法を徹底解説!

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

皆さんは、VBAで繰り返し処理をする方法を知っていますか?

VBAのプログラミング言語でもそうですが、データ数分処理をループして動かすケースはとても多いです。

そこで今回は、

・VBAで繰り返し処理をするための3つの方法

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

・For Next、While、For Eachを使ったサンプルコード

・処理の途中でループ処理を抜ける方法

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

VBAで繰り返し処理する3つの方法

VBAでは、次の3つの方法でループ処理を書くことができます。

  • For Nextステートメント
  • Whileステートメント
  • For Eachステートメント

それぞれ解説します。

For Nextステートメント

最初は、For Nextステートメントです。

For Nextステートメントは、繰り返し回数数値で指定して、実行することができます。

使い方:

サンプル:

上の例では、「処理」に書いた処理を、5回ループ処理することができます。

詳しい使い方は以下でも解説しているので、気になる方は見てみてくださいね!

【VBA For Next】ループ処理の基本を5つのステップで完全理解
更新日 : 2019年4月20日

Whileステートメント

次に、Whileステートメントです。

Whileステートメントは、「指定の値に到達するまで処理をループしたい場合」のように、具体的な数値が決まっていないときに使います。

使い方:

サンプル:

上の例では、変数i5よりも大きくなるまで処理をループすることができます。

変数1が0.1ずつ増えた場合、1ずつ増えた場合など条件によってループ回数が変わってくるのが、For Nextステートメントとの違いですね。

詳しい使い方は以下でも解説しているので、気になる方は見てみてくださいね!

【VBA入門】While Wend、Do While、Do Loop Whileの使い方
更新日 : 2019年4月22日

For Eachステートメント

次に、For Eachステートメントです。

For Eachステートメントは、配列の要素数オブジェクトの数など、変数の塊の数分処理をループしたい場合に使います。

使い方:

サンプル:

上の例では、配列arrValの要素数分処理をループすることができます。

詳しい使い方は以下でも解説しているので、気になる方は見てみてくださいね!

【VBA入門】For Eachで配列やコレクション、Selectionを操作
更新日 : 2019年4月23日

サンプルコード

次に、サンプルコードをもとに、具体的な使い方を解説します。

配列(arrVal)の要素数分処理をループし、データを合計した値をメッセージで表示するサンプルを、3つの方法で書きました。

For Nextステートメントの場合:

実行結果:

Whileステートメントの場合:

実行結果:

For Eachステートメントの場合:

実行結果:

実行結果は全て同じですが、処理の内容が若干違いますね。

このように、3つの方法でループ処理をすることができます。

補足:ループ処理を途中で抜ける方法とは

ここまでループ処理をする方法について解説してきましたが、ループの途中で処理を抜けたいケースもありますよね。

GoTo文を使えば、簡単に途中で処理を抜けることができます。

使い方は以下で詳しく解説しているので、気になる方は見てみてくださいね!

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

まとめ

今回は、VBAで繰り返し処理をする3つの方法について解説しました。

大規模なデータを扱うことも多いExcelだからこそ、繰り返し処理はよく使います。

どれも使い方は簡単なので、ぜひ使ってみてくださいね!

LINEで送る
Pocket

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

cta_under_bnr

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

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

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

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

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

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

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

おすすめコンテンツ

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

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