カテゴリ: Excel VBA 更新日: 2026/02/18

Excel VBAの条件分岐でエラーが出る原因と対処法を完全解説!初心者でも安心して直せる考え方

Excel VBAのエラーが出る条件分岐のよくある原因と対処法まとめ
Excel VBAのエラーが出る条件分岐のよくある原因と対処法まとめ

先生と生徒の会話形式で理解しよう

生徒

「Excel VBAでIf文を書いたら、突然エラーが出て止まってしまいました。何が悪いのか全然分かりません……」

先生

「条件分岐の書き方でエラーが出るのは、初心者の方が必ず通る道ですよ。原因にはいくつか決まったパターンがあります」

生徒

「パソコン操作も苦手なんですが、それでも直せますか?」

先生

「大丈夫です。エラーは故障ではなく、VBAからの合図です。一つずつ原因と対処法を見ていきましょう」

1. Excel VBAの条件分岐とは?エラーが起きやすい理由

1. Excel VBAの条件分岐とは?エラーが起きやすい理由
1. Excel VBAの条件分岐とは?エラーが起きやすい理由

Excel VBAの If文Select Case は、条件によって処理を変えるための仕組みです。 条件分岐とは、「もし〇〇なら△△をする」という判断のことです。 日常生活で言えば、「雨なら傘を持つ」「寒ければ上着を着る」といった判断と同じです。

条件分岐は便利ですが、判断の材料が間違っていると、エラーが発生します。 Excel VBAはとても正直なので、少しのミスでも「分からない」とエラーで知らせてきます。 これが、初心者が条件分岐でつまずきやすい理由です。

2. 空白セルを考慮していないことによるエラー

2. 空白セルを考慮していないことによるエラー
2. 空白セルを考慮していないことによるエラー

Excel VBAの条件分岐で最も多い原因が、「セルが空白なのに処理しようとする」ことです。 人間なら空白を見て判断できますが、VBAは命令がないと止まってしまいます。


If Range("A1").Value > 10 Then
    MsgBox "10より大きいです"
End If

A1セルが空白の場合、このコードはエラーになることがあります。 対処法は、先に空白かどうかを確認することです。


If Range("A1").Value <> "" Then
    If Range("A1").Value > 10 Then
        MsgBox "10より大きいです"
    End If
End If

3. 数字と文字を比較してしまうエラー

3. 数字と文字を比較してしまうエラー
3. 数字と文字を比較してしまうエラー

Excel VBAでは、「数字」と「文字」はまったく別のものとして扱われます。 見た目が同じでも、中身が違うとエラーの原因になります。


If Range("A1").Value >= 5 Then
    MsgBox "5以上です"
End If

A1セルに文字が入っていると、この比較はできません。 そこで使うのが IsNumeric です。 これは「数字かどうか」を調べる命令です。


If IsNumeric(Range("A1").Value) Then
    If Range("A1").Value >= 5 Then
        MsgBox "5以上です"
    End If
End If

4. 変数の型が合っていないことによるエラー

4. 変数の型が合っていないことによるエラー
4. 変数の型が合っていないことによるエラー

VBAでは 変数 という箱に値を入れて使います。 変数には「数字専用」「文字専用」などの種類があります。 これを と呼びます。


Dim age As Integer
age = "二十歳"

この場合、数字専用の箱に文字を入れようとしているため、エラーになります。 初心者のうちは、どんな値が入るかを意識することが大切です。

5. If文の書き忘れ・閉じ忘れによるエラー

5. If文の書き忘れ・閉じ忘れによるエラー
5. If文の書き忘れ・閉じ忘れによるエラー

条件分岐のエラーで意外と多いのが、End If の書き忘れです。 VBAは、Ifの終わりが分からないと処理を続けられません。


If Range("A1").Value = 1 Then
    MsgBox "1です"

このコードは、End Ifがないためエラーになります。 If文を書いたら、必ず終わりがあることを意識しましょう。

6. 条件の書き方が間違っているケース

6. 条件の書き方が間違っているケース
6. 条件の書き方が間違っているケース

条件分岐では、「=」と「==」のような他の言語の癖が混ざることがあります。 Excel VBAでは、比較には「=」を使います。


If Range("A1").Value == 1 Then
    MsgBox "1です"
End If

この書き方はVBAではエラーになります。 正しい比較の書き方を覚えておくことが大切です。

7. エラーを怖がらず原因を探す考え方

7. エラーを怖がらず原因を探す考え方
7. エラーを怖がらず原因を探す考え方

Excel VBAのエラーは、プログラムが壊れたわけではありません。 「ここが分からない」と教えてくれているだけです。 エラーが出た行を確認し、「どんな値が入っているか」を考えることで、原因は必ず見えてきます。

条件分岐のエラーは、空白、型、比較の三点を確認するだけでも、大きく減らせます。 プログラミング未経験の方でも、落ち着いて一つずつ見直せば、必ず対処できます。

8. Excel VBA初心者が条件分岐で失敗しないための意識

8. Excel VBA初心者が条件分岐で失敗しないための意識
8. Excel VBA初心者が条件分岐で失敗しないための意識

条件分岐を書くときは、「想定外の値が来たらどうなるか」を考えることが大切です。 空白、文字、数字以外の状態を意識するだけで、エラーは大幅に減ります。

Excel VBAの基本文法であるIf文は、正しく使えばとても強力な道具です。 エラーの原因と対処法を知っておくことで、自動化作業も安心して進められるようになります。

カテゴリの一覧へ
新着記事
New1
Excel VBA
Excel VBAで業務自動化!初心者でもわかる定型作業の自動化例
New2
Excel VBA
VBAの基本構造を理解しよう!モジュール・プロシージャ・関数の役割まとめ
New3
Office Scripts
Office Scriptsで大量シートを効率管理!Excelワークブック最適構造と自動化テクニック
New4
Excel VBA
Excel VBAが今でも使われ続ける理由とは?現場で評価されるポイントを徹底解説
人気記事
No.1
Java&Spring記事人気No1
Office Scripts
Office Scriptsで別ブックを開いてデータ取得する方法|OneDrive・SharePoint連携でExcel自動化
No.2
Java&Spring記事人気No2
Excel VBA
Excel VBA参照設定エラー「参照が見つかりません」を完全解説!初心者でも原因と対処法がわかる
No.3
Java&Spring記事人気No3
Excel VBA
Excel VBAは今後なくなる?将来性と企業での活用状況を詳しく解説
No.4
Java&Spring記事人気No4
Excel VBA
Excel VBAの開発環境を最速で整える!VBEの開き方から基本操作まで完全ガイド
No.5
Java&Spring記事人気No5
Excel VBA
Excel VBAモジュール共有術!複数のブックでマクロを使い回す最適構成
No.6
Java&Spring記事人気No6
Excel VBA
VBAのコメントの書き方を完全ガイド!初心者でもわかる説明文の付け方
No.7
Java&Spring記事人気No7
Excel VBA
Excel VBAで列の追加・行の削除を自動化!InsertとDeleteの使い方を初心者向けに徹底解説
No.8
Java&Spring記事人気No8
Excel VBA
個人用マクロブック(PERSONAL.XLSB)で作る最強の共通ライブラリ化ガイド