MENU

【初心者向け】Excel VBAでFor文を使いこなす!基本構文から繰り返し処理の実例まで

この記事で解決できる3つの疑問

同じ処理を何度も書くの、面倒くさいな…
繰り返し処理ってどう書くの?
For文ってどこで使えばいいの?

結論:繰り返し処理は「For文」が基本!ループ処理でVBAの力を最大限に活用しよう

Excel VBAでは、同じ処理を何度も繰り返したい場面がよくあります。たとえば、複数のセルに同じ操作を加えたり、表の中から条件に合うものを探したり。そんなとき、For文を使えば一瞬で処理できます。コードが短く、読みやすくなるため、初心者が最初に覚えるべき構文のひとつです。

For文ってなに?

For文とは、「何回も同じ処理を繰り返したい」ときに使う構文です。

  • たとえば「1から10まで数字を順番に出す」
  • 「10行ある表の中で全てに同じ操作をする」

といった処理に使います。

For~Nextの基本構文と使い方

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Dim i As Integer
For i = 1 To 10
' 繰り返したい処理
Next i
Dim i As Integer For i = 1 To 10 ' 繰り返したい処理 Next i
Dim i As Integer
For i = 1 To 10
    ' 繰り返したい処理
Next i

iはカウンタ変数。1から10まで1ずつ増えながら繰り返します。

Toのあとは終点。ここまで処理を繰り返します。

実例:1〜10の数字を表示する

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Dim i As Integer
For i = 1 To 10
Debug.Print i
Next i
Dim i As Integer For i = 1 To 10 Debug.Print i Next i
Dim i As Integer
For i = 1 To 10
    Debug.Print i
Next i

実例:A1〜A10に「完了」と書き込む

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Dim i As Integer
For i = 1 To 10
Cells(i, 1).Value = "完了"
Next i
Dim i As Integer For i = 1 To 10 Cells(i, 1).Value = "完了" Next i
Dim i As Integer
For i = 1 To 10
    Cells(i, 1).Value = "完了"
Next i

このコードでは、A列の1行目から10行目までに「完了」と入力されます。

For文と変数の組み合わせ方

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Dim i As Integer
Dim 合計 As Integer
合計 = 0
For i = 1 To 5
合計 = 合計 + i
Next i
MsgBox 合計 ' 結果:15
Dim i As Integer Dim 合計 As Integer 合計 = 0 For i = 1 To 5 合計 = 合計 + i Next i MsgBox 合計 ' 結果:15
Dim i As Integer
Dim 合計 As Integer
合計 = 0

For i = 1 To 5
    合計 = 合計 + i
Next i

MsgBox 合計 ' 結果:15

1+2+3+4+5 の合計を求めています。

StepやExit Forを使った応用

Stepで増減の幅を変える:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
For i = 10 To 1 Step -1
Debug.Print i
Next i
For i = 10 To 1 Step -1 Debug.Print i Next i
For i = 10 To 1 Step -1
    Debug.Print i
Next i

このコードは10から1へカウントダウンします。

Exit Forで途中終了:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
For i = 1 To 10
If i = 5 Then Exit For
Debug.Print i
Next i
For i = 1 To 10 If i = 5 Then Exit For Debug.Print i Next i
For i = 1 To 10
    If i = 5 Then Exit For
    Debug.Print i
Next i

iが5になったら処理を終了。1〜4が表示されます。

For Eachとの違いは?

For文は数値ベースのループ、For Eachはオブジェクト(セルやシートなど)をループするときに使います。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Dim cell As Range
For Each cell In Range("A1:A10")
cell.Value = "済"
Next cell
Dim cell As Range For Each cell In Range("A1:A10") cell.Value = "済" Next cell
Dim cell As Range
For Each cell In Range("A1:A10")
    cell.Value = "済"
Next cell

このように、範囲内のセルを1つずつ処理したい場合には「For Each」のほうが便利です。

まとめ:繰り返し処理はFor文から始めよう!

  • For文は「同じ処理を何度も行いたい」ときの基本中の基本。
  • 変数と組み合わせることでより高度な処理が可能に。
  • StepやExit Forを活用すると柔軟性が高まる。

まずはシンプルな例から始めて、繰り返し処理に慣れていきましょう!

関連記事リンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

かもろぐ屋です
Microsoftが大好きな社内SEです
転職経験あり・内定辞退経験あり

なお絶賛婚活中

コメント

コメントする

CAPTCHA