VBAでプログラミングをするうえで繰り返し動作が必要な場面が出てくると思います。
例えば100行連続で処理内容が一緒だった場合、100行分の処理プログラムが必要になります。
それでは日が暮れてしまうので繰り返し動作のFor Nextを身につけると作業がグッと楽になります。
変数の知識も必要になるので変数の詳しい説明は下記記事をご参照ください。
【マクロVBA】変数型の一覧と意味と必要性について!数値や文字・配列の変数を宣言・定義をする方法 ► 独学エクセル塾 (dokugakuexcel.com)
ループの繰り返し動作を抜け出す方法も紹介していますので是非参考にしてみてください。
それでは見ていきましょう。
■忙しい人向けのコピペ用プログラム
Sub 繰り返し動作() Dim 変数 As Long For 変数 = 1 To 10 Step 1 'ここに処理プログラム Next 変数 End Sub
変数は任意の文字に打ち換えてください。
青文字は開始数値・終わり数値・STEP数を打ち換えてください。
デフォルトは1から10まで1ずつ追加する繰り返しになります。
■For Next の構造
まずは構造から見ていきましょう
For 変数=初めの数値 TO 終わりの数値 STEP 何個ずつ実行するか
’…ここの処理をループ 内容を入力
Next 変数
For 変数=初めの数値
ここで使用している変数は数値の変数です。なのでAやBでも構いません。
その後「=」にて繰り返しの始点を宣言します。
=1であれば「1からスタート」。=5であれば「5からスタート」という流れですね。
TO 終わりの数値
ここでは変数の始点が決まっている状態なので終点を設定します。
仮に変数をAとして For A=4 であった場合に「 TO 18 」 とすると 4からスタートして8まで繰り返す。
といった流れになってます。
STEP 何個ずつ実行するか
こちらはどのような周期で繰り返すかを宣言します。
例えば「STEP 2」であれば 「2.4.6.8….」。「STEP 5」であれば「5.10.15.20.25……」
のように進んでいきます。
Next 変数
FOR…から宣言した繰り返しの終点です。
つまりFORからNEXTまでを繰り返します。
■For Next の見本
見本で例を作成しました。☟
Sub ForNextでの繰り返し動作()
Dim A As Long
For A = 3 To 15 Step 2
‘ここに処理
Next A
End Sub
これを読み解くと、、、
3から始まって15で終わる。
Stepは2なので「3.5.7.9.11.13.15」という順に7回繰り返すプログラムになります。
■実践
それでは実践です。
見本で下図のシートを用意しました。
赤枠にそれぞれの掛け算をしたいと思います。
九九の5の段ですね。
C3には「15」。C4には「25」….のように続いていきます。
まず「For 変数=初めの数値 TO 終わりの数値 STEP 何個ずつ実行するか」の部分を進めていきます。
変数はとりあえず「A」とします。
数値は3行目から始まっているので初めの数値は「3」です。
終わりの数値は12行目まであるので「12」となります。
1行づつ実行するため「Step 1 」とします。
これをまとめると…
For A = 3 To 12 Step 1
このようになります。
つぎに処理です。
書き込みたい行は変数で変わるため「A」です。
行は3行目なので「Cells(A,3)」となります。
あとは2行目と5をかけるので…
Cells(A, 3) = Cells(A, 2) * Cells(2, 3)
このようになります。
最後にNext Aで繰り返しの終点を決めましょう。
Sub ForNextでの繰り返し動作()
Dim A As Long
For A = 3 To 12 Step 1
‘ここから繰り返し動作
Cells(A, 3) = Cells(A, 2) * Cells(2, 3)
‘ここまで繰り返し動作
Next A
End Sub
このようになりました。
実行すると…
うまく計算できてますね。
とても便利です。
■ループを抜き出す方法
ここではFor….Nextでループを抜け出す方法を紹介します。
使用するのはIf…Thenと呼ばれる条件分岐とGotoになります。
仕組みとしてはIf…Thenで指定した条件に当てはまるか確認し、
結果併せてGotoでプログラムを飛ばします。
詳しくは下記記事でまとめていますので参考にしてみてください☟
【マクロVBA知識 11】GoToでプログラムを指定した場所まで飛ばす方法について Excel ► 独学エクセル塾 (dokugakuexcel.com)
■練習問題
練習問題も別の記事でまとめているので是非参考にしてみてください!
⬛︎公式の説明
わかりやすいように説明したため公式と使用する語句が異なりますが
マイクロソフト公式の説明については下記のリンクを参照してください。☟
For…Next ステートメント (VBA) | Microsoft Learn
■まとめ
いかがだったでしょうか。
繰り返しはVBAを使う上で1つの大きなメリットです。
手打ちでは時間のかかる作業をプログラムで一瞬で実現してしまいます。
しかしFor…Nextは繰り返す回数が決まっている必要がありますね。
なので次回は繰り返しの終わる・継続条件を設定できる方法について説明します。
Do Loopの記事はこちらから☟
【VBA知識 8】Do…Loopで条件まで繰り返し・ループ動作をする方法 – 独学エクセル塾 (dokugakuexcel.com)
それでは次回の記事でお会いしましょう。