【Excelマクロ】VBAの3つの基本構造「順次・分岐・繰り返し」を理解しよう

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スキルは確実に次のレベルに進みます。

わからないところがあれば何度でも復習し、ぜひ実際に手を動かしてみてください。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール