VBA

[Excelマクロ]VBAで繰り返し処理 For文

VBAで繰り返し処理 For文

初めに

本記事では、For文を使用した繰り返し処理を解説します。

For文とは

For文は、指定した回数だけ処理を繰り返したい場合に使用します。

For文の構文

For 変数名 = 初期値 To 終了値 Step 加算値
 繰り返す処理
Next 変数名

「Next 変数名」の変数名の部分は省略可能です。
また、「Step 加算値」も省略が出来ます。
「Step 加算値」の詳細に関しては、下記で解説します。

For文を使用したプログラム

指定した回数を繰り返す

5回ループさせて、メッセージダイアログに処理回数を表示します。

Stepで加算数を指定

iの値が、1回ループするたびに1加算されていました。
それを2ずつ加算するようにします。

上記では、1からカウントが加算されています。
次は、カウントダウンのように、5から減算させていきます。

For文を使用した応用プログラム

ここからは、応用編です。
「Loop5」を改良して行きます。

指定した回数の処理を飛ばす

以下のプログラムは、3回目の処理を飛ばします。

修正後は、IF文でiのカウントが3回目か判断して、3回目の場合にGoTo文で「飛ばす:」のところまで処理を移動させています。
そのため、「飛ばす:」の上にある「MsgBox i & "回"」が実行されません。

修正前

修正後

For文を途中で抜ける

以下のプログラムは、3回目でFor文を抜けます。
For文を抜けたい場合は、「Exit For」を使用することで実現できます。

修正前

修正後

2重ループ

以下のプログラムは、「Loop5」の処理を3回ループします。

修正前

修正後

最初の「For文の構文」の解説のところで、「Next」の後ろについている変数名を省略することが出来るとお話ししたと思います。
ただ、変数名を省略することはお勧めしません。

上記で作成したFor文を多用した場合で考えてみましょう。

For i = 1
 For j = 1
  For k = 1

  Next

  処理A
  処理B
  処理C
 Next

 処理D
 処理E
 処理F
Next

上記のように、NextとNextの間に処理が書かれているような場合に、今見ている処理が、どのFor文の処理なのか判断しにくくなります。
しかし、以下のように変数名が書いてあるとどうでしょうか?

For i = 1
 For j = 1
  For k = 1

  Next k

  処理A
  処理B
  処理C
 Next j

 処理D
 処理E
 処理F
Next i

たとえば、処理Cが、どのFor文で処理をしているか判断しようと思ったときにNextの後ろの変数を見れば「j」のカウントのFor文内であることがすぐに判断できます。
このように、変数名を省略することは可能ですが、付けておくことをお勧めします。

まとめ

VBAのFor文について解説しました。
他にもVBAについて解説していますので、参考にしてみてください。

初心者のためのVBA入門
[Excelマクロ]初心者のためのVBA入門 使い方と基礎を学習ExcelのVBAを使えるようになるための基本を解説します。理解できればマクロを自作することが出来るでしょう。VBAで出来ることが全くわからない初心者でもわかりやすく解説しています。...
ABOUT ME
ブレイン
本ブログの管理人 名前:ブレイン 大阪在住の社畜

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です