VBA構築に必要な基本構造
Excel VBAを使って業務を効率化したい!
そう思ってマクロを始めたけれど、「なんとなく書いてるだけで意味はよくわからない」「エラーが出てしまう」という方も多いのではないでしょうか。
そこで今回は、VBAの中でも特に重要な「基本構造」の順次・分岐・繰り返しについて、わかりやすく解説していきます。
この3つの考え方をしっかり理解するだけで、マクロの設計力が格段にアップします。
1. 順次処理 ― 上から順番に処理される基本構造
まずは、順次処理のサンプルから見てみましょう。
Sub 順次処理の例()
' A1セルに「処理1」を書き込む
Range("A1").Value = "処理1"
' A2セルに「処理2」を書き込む
Range("A2").Value = "処理2"
' A3セルに「処理3」を書き込む
Range("A3").Value = "処理3"
End Sub
このコードは、上から順に処理が実行されていきます。
プログラムの基本的な動きはすべて上から順番に処理する「順次処理」から始まります。
2. 分岐処理 ― 条件によって処理を変える
次は「条件によって動きを変える」分岐処理です。
If ~ Then ~ Elseを使った代表的な例を見てみましょう。
Sub 分岐処理の例()
Dim 点数 As Integer
' B1セルの値を点数として取得
点数 = Range("B1").Value
' 点数が80以上なら「合格」、それ以外は「不合格」と表示
If 点数 >= 80 Then
Range("C1").Value = "合格"
Else
Range("C1").Value = "不合格"
End If
End Sub
業務でも、「金額が○○円以上なら値引きする」や「在庫がなければ発注する」などの条件分岐はよく使います。
3. 繰り返し処理 ― 同じ処理を何度も行う
次に紹介するのは、繰り返し処理です。
よく使われるのは For ~ Next 文です。
Sub 繰り返し処理の例()
Dim i As Integer
' 1から10まで繰り返す
For i = 1 To 10
' A列のi行目に、iの値を出力
Cells(i,1).Value = i
Next i
End Sub
このコードでは、A1〜A10に「1〜10」の数字が書き込まれます。
データの自動入力や連番の生成に使える便利な処理です。
応用:3つの構造を組み合わせた実務例
実際の業務では、順次・分岐・繰り返しを組み合わせて使います。
次のコードは、「名前と点数のリストを読み取り、点数に応じて合否を判断する」例です。
Sub 基本構造の応用例()
Dim i As Long
Dim 点数 As Long
Dim 最終行 As Long
' A列(名前)の最終行を取得
最終行 = Cells(Rows.Count, 1).End(xlUp).Row
' 2行目から最終行までループ
For i = 2 To 最終行
' B列(点数)を取得
点数 = Cells(i, 2).Value
' 点数が80以上ならC列に「合格」、それ以外は「不合格」と記入
If 点数 >= 80 Then
Cells(i, 3).Value = "合格"
Else
Cells(i, 3).Value = "不合格"
End If
Next i
End Sub
このように「一覧表に対してループ処理をかけ、条件によって結果を変える」という使い方ができれば、VBAの実務活用レベルに一歩近づけます。
まとめ
VBAにはいろいろな構文や機能がありますが、すべての土台になっているのが 順次処理・分岐処理・繰り返し処理 の3つです。
- 順次処理 → 上から下へ、1つずつ実行される
- 分岐処理 → 条件によって処理を分ける(If~Then)
- 繰り返し処理 → 同じ処理を何度も繰り返す(For~Nextなど)
この3つの基本を使いこなせれば、あなたのVBAスキルは確実に次のレベルに進みます。
わからないところがあれば何度でも復習し、ぜひ実際に手を動かしてみてください。
