こんにちは!今回は、Excel VBAを使って「操作を指定した回数分繰り返す方法」について、初心者の方にもわかりやすく解説していきます。パソコンやスマホの操作が苦手な方でも安心して学べる内容ですので、ぜひ最後までご覧ください。
For…Next文とは?
Excel VBAの「For…Next文」は、指定した回数だけ同じ処理を繰り返すための命令です。例えば、「セルに100を入力する」という操作を10回繰り返したい場合に使います。
基本構文
以下のように記述します。
vba
For 変数 = 初期値 To 終了値
実行する処理
Next 変数
例えば、セルに100を10回入力する場合は、以下のように書きます。
vba
Sub 繰り返し処理()
Dim i As Integer
For i = 1 To 10
Cells(i, 1).Value = 100
Next i
End Sub
このコードを実行すると、からまでのセルに100が入力されます。
Stepを使って増減の幅を指定する
「Step」を使うと、繰り返し処理の増減の幅を指定できます。
増加する幅を指定する
例えば、1から10までの数値を2ずつ増加させて表示したい場合、以下のように書きます。
vba
Sub 増加幅指定()
Dim i As Integer
For i = 1 To 10 Step 2
Debug.Print i
Next i
End Sub
このコードを実行すると、1, 3, 5, 7, 9と表示されます。
減少する幅を指定する
逆に、10から1までの数値を1ずつ減少させて表示したい場合、以下のように書きます。
vba
Sub 減少幅指定()
Dim i As Integer
For i = 10 To 1 Step -1
Debug.Print i
Next i
End Sub
このコードを実行すると、10, 9, 8, 7, 6, 5, 4, 3, 2, 1と表示されます。
For…Next文を使った実用例
では、実際の業務で役立つ例を見てみましょう。
例1: A列の数値を2倍にしてB列に入力する
vba
Sub 数値を2倍にする()
Dim i As Integer
For i = 1 To 10
Cells(i, 2).Value = Cells(i, 1).Value * 2
Next i
End Sub
このコードを実行すると、からまでのセルの数値を2倍にして、B1からB10までのセルに入力されます。
例2: 逆順で行を削除する
vba
Sub 行を削除する()
Dim i As Integer
For i = 10 To 1 Step -1
Rows(i).Delete
Next i
End Sub
このコードを実行すると、10行目から1行目までの行が順番に削除されます。逆順で削除することで、削除による行のずれを防ぎます。
よくある質問や疑問
Q1: For…Next文の「変数」は何ですか?
「変数」は、繰り返し処理の回数をカウントするための箱のようなものです。例えば、「i」という名前を付けることが一般的です。
Q2: Stepを使わないとどうなりますか?
Stepを省略すると、デフォルトで1ずつ増加します。例えば、「For i = 1 To 10」と書くと、iは1から10まで1ずつ増加します。
Q3: For…Next文を途中で抜ける方法はありますか?
はい、「Exit For」を使うことで、繰り返し処理を途中で抜けることができます。例えば、ある条件を満たした場合に処理を終了したいときに使います。
まとめ
今回は、Excel VBAの「For…Next文」を使って、操作を指定した回数分繰り返す方法について解説しました。これで、同じ処理を何度も繰り返す作業を自動化できるようになりましたね。
他にも疑問やお悩みがありましたら、お気軽にLINEからお声掛けください。



コメント