「日々のExcel作業、もっとラクにならないかな…?」そうお考えの皆さん、こんにちは! プログラミング経験がなくても大丈夫です。今回は、Excel VBAを使って面倒な繰り返し作業を自動化する第一歩、「For文(フォーぶん)」の基本を、プログラミング初心者の方にも分かりやすく解説します。
「コードってなんだか難しそう…」という先入観は一旦置いておいて、まずはこの記事で「繰り返し」の楽しさと便利さに触れてみませんか? きっとあなたのExcel業務がもっと効率的になるはずです!
VBAとは?なぜ繰り返し処理が必要なの?
Excel VBA(Visual Basic for Applications)は、Excelの機能を自動化するためのプログラミング言語です。普段手作業で行っているデータ入力、集計、レポート作成といった定型業務を、VBAのコード(命令文)を書くことでExcelに「自動でやってね!」と指示できるようになります。
その中でも特に重要で、よく使われるのが「繰り返し処理」です。例えば、100行あるデータの一行一行に対して同じ処理をしたい、毎日同じ形式のファイルをコピーして貼り付けたい、といった場合、手作業では時間がかかりますし、ミスの原因にもなりますよね。
そんな時、VBAの繰り返し処理を使えば、たった数行のコードで、何百回、何千回という作業を一瞬で終わらせることができます。今回は、繰り返し処理の基本中の基本である「For文」に焦点を当てて見ていきましょう。
For文の基本構造を理解しよう
For文は、「〇回繰り返す」というシンプルなルールで動作する繰り返し処理です。イメージとしては、「1から10まで数える間、この作業を繰り返してね」と指示するようなものです。
For文の基本的な書き方
For文は、主に次の3つの要素で構成されます。
For 変数 = 開始値 To 終了値
「変数」とは、一時的にデータをしまっておく「箱」のようなものです。この箱に、最初に入れる値(開始値)から、最後に入れる値(終了値)までを順番に繰り返していきます。「To」は「~まで」という意味ですね。
例えば、「For i = 1 To 10」と書くと、「iという箱に1から10まで順番に入れていきながら、中の処理を繰り返してね」という意味になります。繰り返し処理の内容
ここに、繰り返したい命令文(コード)を記述します。セルの値を入力したり、計算したり、書式設定を変えたり…何でもできます。Next 変数
「次の値へ進む」という合図です。この命令があると、For文は「変数」の値を1つ増やし、次の繰り返し処理に移ります。もし変数の値が終了値を超えたら、For文は終了します。
まとめると、このような形になります。
For 変数 = 開始値 To 終了値
' ここに繰り返し実行したい処理を書きます
' 変数の値は、1回ごとに自動で1ずつ増えていきます
Next 変数

実際にFor文を使ってみよう!セルに値を入力する例
言葉だけだと少し難しく感じるかもしれませんが、実際にコードを見てみれば、きっと「ああ、なるほど!」と感じていただけるはずです。ここでは、ExcelシートのA列に、1から10までの連番を自動で入力する簡単なVBAコードを作成してみましょう。
VBAのコードを書くには、まず「VBAエディター」を開く必要があります。Excelを開いた状態で、Altキーを押しながらF11キーを押してみてください。真っ白い画面が出てきたら、それがVBAエディターです。
VBAエディターが開いたら、左側にあるプロジェクトエクスプローラーの「VBAProject(ご自身のファイル名)」を右クリックし、「挿入」→「標準モジュール」を選択します。すると、白い空白のシートが表示されるので、そこに以下のコードをコピー&ペーストしてください。

Sub 連番入力マクロ()
' 変数「i」を整数型(数字を扱う型)として宣言します
' 変数は値を一時的に保存しておく「箱」のようなものです
Dim i As Integer
' For文の開始。「i」を1から10まで1つずつ増やしながら繰り返します
For i = 1 To 10
' Cells(行番号, 列番号) は、指定したセルを指します
' 今回は、行番号に変数「i」を、列番号に「1」(A列)を指定しています
' 「.Value = i」で、そのセルに変数「i」の現在の値(1, 2, 3...)を入れます
Cells(i, 1).Value = i
' もしくは、Range("A" & i).Value = i とも書けます
' Range("A" & i) は、文字列"A"と現在のiの値を結合して"A1", "A2",...と変化させます
Next i ' 次のiの値へ進みます(iが11になったらFor文は終了します)
' メッセージボックスを表示して、処理が完了したことをお知らせします
MsgBox "連番の入力が完了しました!"
End Sub
コードを貼り付けたら、VBAエディターの画面上部にある「実行」ボタン(▶のような緑色のボタン)をクリックするか、F5キーを押してください。Excelのシートに戻ってみると、A1からA10までのセルに、自動で1から10の数字が入力されているはずです。

どうですか? たったこれだけのコードで、手作業では面倒な連番入力が一瞬でできましたね! これがFor文の力です。
⚠️ 注意点・補足
1. Nextを忘れるとエラーになります
For文には必ず「Next 変数」をセットで記述してください。もしNextを書き忘れると、VBAはどこで繰り返しの区切りが終わるのか分からなくなり、エラーが発生してしまいます。書き始めるときは、ForとNextを先にセットで書く習慣をつけると良いでしょう。
2. 無限ループにご注意!
今回のFor文では、For i = 1 To 10 のように「開始値」と「終了値」が明確に決まっているので、無限に繰り返すことはありません。しかし、別の繰り返し処理(Do While文など)を使う場合や、For文の途中で変数の値を意図せず変更してしまうと、終了条件が満たされなくなり、いつまでも処理が終わらない「無限ループ」に陥ることがあります。
もしコードを実行した際にExcelが応答しなくなったら、Ctrlキーを押しながらBreakキー(またはPauseキー)を押すことで、処理を強制的に中断できます。
VBA学習の注意点とよくある質問
- Q1: For文以外にも繰り返し処理はありますか?
- A1: はい、VBAにはFor文の他にも繰り返し処理の種類があります。例えば、「Do While文」は「条件が真(正しい)である限り繰り返す」という処理で、「Do Until文」は「条件が偽(間違い)である限り繰り返す」という処理です。また、「For Each文」という、セル範囲やシートなど、複数の「オブジェクト」に対して一つずつ処理を行う便利な繰り返し文もあります。For文の基本をマスターしたら、ぜひ他の繰り返し処理にも挑戦してみてくださいね。
- Q2: コードを書くのが難しいです。どうすれば慣れますか?
- A2: プログラミングは、最初はどうしても難しく感じるものです。ですが、スポーツや楽器の練習と同じで、繰り返し練習することで必ず慣れていきます。
大切なのは、- まずは完璧を目指さず、小さなコードから真似して書いてみる
- エラーが出ても落ち込まず、「これは成長のチャンス!」とポジティブに捉える
- 「こんなことを自動化したい!」という具体的な目標を持つ
- たくさん調べて、動くたびに喜びを感じる
ことです。焦らず、ご自身のペースで少しずつ進めていきましょう!
- Q3: For文でセルの範囲を指定するにはどう書けばいいですか?
- A3:
Cells(i, 1)のように行番号・列番号で指定するか、Range("A" & i)のように文字列で指定する方法があります。どちらも同じセルを指しますが、列をアルファベットで覚えている場合はRange形式、数字で管理したい場合はCells形式が直感的です。
まとめ
- For文は、VBAにおける基本的な繰り返し処理で、決まった回数だけ処理を繰り返すことができます。
For 変数 = 開始値 To 終了値からNext 変数の間に、繰り返したいコードを記述します。- For文をマスターすることは、Excelの自動化を進める上で非常に強力な武器となります。
- 実行してもうまくいかない場合は、
Nextの書き忘れや変数名のスペルミスを最初に確認してください。
今回の記事で、For文の基本と「コードって意外と怖くないかも?」と感じていただけたら幸いです。ぜひ、実際に手を動かして、Excel VBAの自動化の楽しさを体験してみてください!

コメント