【Excel VBA】for文を使って処理を繰り返そう!便利なネストって?

Excel VBA

「この処理を何度も繰り返したい」

そう思った時に使うのがFor~Next文です。
説明よりもまずは構文を見てみましょう。

スポンサーリンク

For~Next文の使い方

構文

For~Nextの構文は下記のようになっています。

最初にカウント用の変数を宣言しますが、この変数は数値である必要があります
Integer型かLong型で宣言しましょう。

カウント用の変数には「i, j, k」などの1文字が使用されます。
特に指定はありませんので、分かりやすく「count」としても問題はありません。

For文ではカウント用の変数に、どんな数値が代入されていても「初期値」の数値から始まります
記述した処理を実行した後、最後の「Next 変数」の部分で変数が1増加します。

カウント用の変数が最終値を超えていなければ、繰り返し処理の1番上に戻ります。
この流れを カウント用の変数が最終値になるまで繰り返します。

最終値の右側にある Step 〇〇 ですが、これは通常1ずつ増加するカウントを変更する事が出来ます。※[]は記述の必要なし
1ずつ増加する仕様で問題無ければ記述する必要はありません。
1では無く、3ずつカウントを増やしたい場合は次のように記述します。

カウントは減らす事も可能です。カウントを減らす場合は「Step -3」のように数字の前に(-)を記述しましょう。
またカウントをマイナスする場合は、初期値が最終値よりも大きい事が必須となります。

初期値が最終値よりも大きいと、何も処理せずにFor文が終了するため注意しましょう

サンプル

実際にFor~Next文を使用してマクロを作成してみました。

「Next i」が来る度に「i」の値が1ずつ増加する為、セルを一つずつ下に移動しながらお皿の枚数を増やしてカウントする処理が一気に出来ます。実行した結果がこちらです。

ForNext文のSample実行結果
スポンサーリンク

便利な使い方!ネストとは?

For文の中にFor文を入れる事をネストと呼びます。
ネストする事で単体で使用するよりも幅広い事が出来る様になります。

例えば下記のコードでは、お皿の枚数をカウントしている表を作成する事が出来ます。

いつ使えるのかはさておき、このようにテーブル別で出力する事が出来ました。
ここにif文をネストする事で、条件に合った時だけ内容を変更するといった事が可能になります。

ネストしたFor文のSample実行結果

先程は一行しか出力できませんでしたが、今回は表に出来ましたね!

スポンサーリンク

まとめ

For文は上手く使えば非常に便利なステートメントです。
人のコードを見る機会があったらどんな事に使っているのか吸収すると良いですよ!!

ネストは、Excelの表から配列を作成する時や大量にデータを入力する際に使用します。
使い始めの頃はやや頭が混乱しますが、何度もやっている内に慣れてきますので、まずはたくさん練習してみましょう!!

コメント

タイトルとURLをコピーしました