【2026年7月最新】VBAのIf文完全ガイド|ElseIf・論理演算子・ネスト・Claude Codeで自動生成まで

【2026年7月最新】VBAのIf文完全ガイド|ElseIf・論理演算子・ネスト・Claude Codeで自動生成まで

VBAでExcelを自動化する際、必ず必要になるのが「条件分岐」です。「セルの値が100以上ならA、未満ならB」「担当者が山田さんなら東日本担当に振り分ける」——こうした処理をVBAで実現するのがIf文です。

VBAのIf文は見た目はシンプルですが、ElseIf・論理演算子・ネスト・比較演算子など、覚えるべきことが多くあります。また、条件が多くなるとIf文よりSelect Caseの方が適切な場面もあります。

この記事ではVBAのIf文に関する全知識を体系的に解説します。さらに2026年現在の実務的な視点として、Claude Codeを使ってVBAの条件分岐コードを自動生成する方法も詳しく紹介します。

代表菅澤 代表菅澤
私たちGENAIが支援する企業の多くで、「ExcelのVBAを書きたいが、If文の書き方が分からなくなってしまう」という声を聞きます。VBAは一度書けば資産になりますが、条件分岐の書き方を誤るとバグが起きやすくなります。この記事でIf文の全パターンを押さえてください。

この記事で分かること:

✔️VBAのIf文の基本構文4パターン(単行・ブロック・Else付き・ElseIf)
✔️And・Or・Not論理演算子を使った複合条件の書き方
✔️Like・Is演算子を使った文字列パターンマッチング・オブジェクト比較
✔️ネスト(入れ子)のIf文の書き方と可読性を保つコツ
✔️If文とSelect Caseの使い分けの判断基準
✔️Claude CodeでVBAのIf文を自動生成する実践的な方法
Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理
📌 この記事の結論
【2026年7月最新】VBAのIf文完全ガイド|ElseIf・論理演算子・ネスト・Claude Codeで自動生成まで
VBAのIf文を徹底解説。If-Then-Else・ElseIf・論理演算子(And/Or/Not)・比較演算子・ネスト・Select Caseとの使い分けまで。さらにClaude CodeでVBAの条件分岐コードを自動生成・デバッグする方法も解説。

01 VBAのIf文とは?条件分岐の基本を理解する 条件が真(True)か偽(False)かによって処理を分岐させる最重要構文

VBAのIf文は、指定した条件が真(True)の場合と偽(False)の場合で、実行する処理を切り替える構文です。Excel VBAのマクロを作る上で最も頻繁に使う構文の一つであり、条件分岐なしで実用的なマクロを作ることはほぼ不可能です。

📚 用語解説

If文(条件分岐):VBAの制御構造の一つ。「もし〇〇ならAを実行し、そうでなければBを実行する」という処理の分岐を実現する。プログラミング全般の基礎であり、VBAに限らずPython・JavaScript・C#など全ての言語に同様の構文がある。VBAでは「If 条件 Then 処理 End If」の形で書く。

If文が使われる代表的な業務シーンを確認しておきましょう。

業務シーン条件の例If文の処理内容
売上データの評価売上 >= 1000000「達成」と表示する
社員名簿の振り分け部署 = "営業部"別シートにコピーする
在庫管理在庫数 < 10警告セルを赤く塗りつぶす
請求書処理支払期限 < Date()「期限超過」フラグを立てる
成績管理得点 >= 80「合格」、60〜79は「条件付き」、未満は「不合格」
AI鬼管理山崎 AI鬼管理山崎
If文を使いこなせると、手作業でやっていたExcelのデータ整理・仕分け・チェック作業を大幅に自動化できます。特に「一定の条件を満たしたセルに色を塗る」「条件によって別シートに振り分ける」という処理は、VBAのIf文の定番活用例です。

02 If-Then-Else文の書き方と4つの基本パターン 単行If・ブロックIf・Else付き・複数Elseの4パターンを完全解説

VBAのIf文には4つの基本パターンがあります。状況に応じて適切なパターンを使い分けることが、読みやすく保守しやすいコードを書くポイントです。

2-1. パターン①:単行If文(1行で完結)

最もシンプルなIf文の書き方です。条件と処理を1行に書けます。処理が1つだけで単純な場合に適しています。

VBA
' 売上が100万以上なら「達成」と表示
If Cells(2, 1).Value >= 1000000 Then MsgBox "達成"
💡単行If文はEnd Ifが不要

単行で書くIf文(1行で「If 条件 Then 処理」まで書く形)の場合は、End Ifは書きません。逆に、ブロック形式(Thenの後で改行する形)の場合は必ずEnd Ifが必要です。End Ifを忘れるとコンパイルエラーになります。

2-2. パターン②:ブロックIf文(複数行の処理)

処理が複数行にわたる場合は、ブロック形式で書きます。「If 条件 Then」の後に改行し、処理を書き、「End If」で閉じます。

VBA
If Cells(2, 1).Value >= 1000000 Then
    ' 条件が真の場合の処理(複数書ける)
    Cells(2, 2).Value = "達成"
    Cells(2, 2).Interior.Color = RGB(0, 255, 0)
End If

2-3. パターン③:If-Else文(2分岐)

条件が真の時と偽の時で、それぞれ別の処理を実行する場合に使います。Elseのブロックには「条件が偽(False)の場合の処理」を書きます。

VBA
If Cells(2, 1).Value >= 1000000 Then
    Cells(2, 2).Value = "達成"
    Cells(2, 2).Interior.Color = RGB(0, 255, 0)
Else
    Cells(2, 2).Value = "未達"
    Cells(2, 2).Interior.Color = RGB(255, 0, 0)
End If

2-4. パターン④:If文の省略形(IIf関数)

VBAには「IIf関数」という1行で条件分岐の値を返す関数もあります。「IIf(条件, 真の値, 偽の値)」という形で書きます。Pythonの三項演算子や、Excelのif関数に相当します。ただし、IIf関数は両方の値を評価するため、エラーが起きやすい場合はブロックIf文を使う方が安全です。

VBA
' IIf関数で条件分岐
Dim result As String
result = IIf(Cells(2, 1).Value >= 1000000, "達成", "未達")
Cells(2, 2).Value = result
パターン書き方End Ifが必要か向いているケース
単行IfIf 条件 Then 処理❌ 不要処理が1つ・シンプルな場合
ブロックIfIf 条件 Then改行 処理 End If✅ 必須処理が複数行ある場合
If-ElseIf 条件 Then 処理A Else 処理B End If✅ 必須真・偽で別々の処理がある場合
IIf関数IIf(条件, 真の値, 偽の値)❌ 不要(関数)値を返す1行処理に限定

03 ElseIf文で多段分岐を作る方法 3つ以上の条件を順番にチェックするElseIfの使い方を実例で解説

条件が3つ以上ある場合、ElseIfを使って複数の条件を順番にチェックする多段分岐が作れます。「もし〇〇ならA、そうでなく△△ならB、それ以外ならC」という処理です。

📚 用語解説

ElseIf(多段分岐):VBAのIf文の中で複数の条件を追加するキーワード。「If 条件1 Then 処理1 ElseIf 条件2 Then 処理2 Else 処理3 End If」の形で使う。条件は上から順に評価され、最初にTrueになった条件の処理だけが実行される。それ以降の条件は評価されない(ショートサーキット)。

以下は成績評価の具体例です。90点以上→S評価、80点以上→A評価、70点以上→B評価、それ未満→C評価という処理をElseIfで実現します。

VBA
Dim score As Integer
Dim grade As String
score = Cells(2, 1).Value

If score >= 90 Then
    grade = "S"
ElseIf score >= 80 Then
    grade = "A"
ElseIf score >= 70 Then
    grade = "B"
Else
    grade = "C"
End If

Cells(2, 2).Value = grade
⚠️ElseIfは順番が重要

ElseIfは条件を上から順に評価し、最初にTrueになった箇所で処理を実行して残りをスキップします。そのため、「score >= 90」「score >= 80」のように書く場合、必ず大きい数値の条件を上に書く必要があります。もし「score >= 70」を一番上に書くと、70点以上なら全てBになってしまいます。

AI鬼管理山崎 AI鬼管理山崎
ElseIfの個数には制限がありません。ただし、条件が5つ以上になると読みにくくなるため、6つ以上の分岐が必要な場合はSelect Case文の使用を検討してください(後述します)。
Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理

04 論理演算子(And・Or・Not)の使い方 複数の条件を組み合わせる3種類の演算子を実例で完全解説

実務では「売上が100万以上 かつ 達成率が90%以上」のように、複数の条件を組み合わせた分岐が必要になることが多いです。VBAでは論理演算子(And・Or・Not)を使って複数の条件を一つのIf文で表現できます。

📚 用語解説

論理演算子(And・Or・Not):If文の条件式で複数の条件を組み合わせるための演算子。And(AかつB)・Or(AまたはB)・Not(〜でない)の3種類が主要なもの。例:「If score >= 80 And attendance >= 0.9 Then」は「80点以上かつ出席率90%以上」の場合のみTrueになる。

4-1. And演算子(AかつBの場合)

And演算子は「条件Aが真、かつ条件Bも真」の場合にTrueを返します。両方の条件を同時に満たすケースに使います。

VBA
' 売上が100万以上 かつ 前年比が100%以上のみ達成と判定
If Cells(2, 1).Value >= 1000000 And Cells(2, 2).Value >= 1 Then
    Cells(2, 3).Value = "ダブル達成"
End If

4-2. Or演算子(AまたはBの場合)

Or演算子は「条件Aが真、または条件Bが真」の場合にTrueを返します。どちらか一方でも満たせばよいケースに使います。

VBA
' 部署が営業部「または」販売推進部のセルに色をつける
If Cells(2, 1).Value = "営業部" Or Cells(2, 1).Value = "販売推進部" Then
    Cells(2, 1).Interior.Color = RGB(255, 255, 0)
End If

4-3. Not演算子(〜でない場合)

Not演算子は条件の真偽を反転します。「〜でない場合に処理をする」という書き方が必要な時に使います。

VBA
' 「完了」ではない行だけ処理する
If Not Cells(2, 3).Value = "完了" Then
    ' 未完了の行に黄色を付ける
    Rows(2).Interior.Color = RGB(255, 255, 0)
End If
論理演算子読み方真(True)になる条件
Andかつ条件A・条件Bが両方TrueA >= 100 And B >= 50 → 両方満たす時True
Orまたは条件A・条件Bの少なくとも一方がTrueA = "東京" Or A = "大阪" → どちらかの時True
Not〜でない条件がFalseの時にTrueNot A = "完了" → 完了以外の時True
Xor一方だけ条件A・条件Bのどちらか一方だけがTrueA Xor B → 両方同じ値の時False(あまり使わない)
代表菅澤 代表菅澤
私が経験した案件で、And演算子とOr演算子を組み合わせた複雑な条件が必要になることがありました。こういう複雑な条件の場合、カッコ()で優先順位を明示することが重要です。「A And (B Or C)」のように書かないと、意図と違う評価順序になることがあります。

05 比較演算子(Like・Is)と文字列・日付の比較 Like演算子のワイルドカード・Is演算子でのオブジェクト比較を解説

VBAのIf文で条件を書く際、数値の大小比較(>=、<=など)だけでなく、文字列のパターンマッチング(Like演算子)やオブジェクトの比較(Is演算子)も使えます。

5-1. 基本の比較演算子一覧

演算子意味使用例注意点
=等しいA = 100文字列の比較でも使用可
<>等しくないA <> ""文字列の「Not equal」に使う
>〜より大きいA > 100数値・日付に使用
>=〜以上A >= 100数値・日付に使用
<〜より小さいA < 100数値・日付に使用
<=〜以下A <= 100数値・日付に使用
LikeパターンマッチA Like "*山田*"文字列のみ。ワイルドカードが使える
Isオブジェクト同一A Is Nothingオブジェクト変数の比較専用

5-2. Like演算子でパターンマッチング

📚 用語解説

Like演算子:VBAの文字列パターンマッチング演算子。「A Like パターン」の形で使い、文字列Aがパターンに一致する場合にTrueを返す。ワイルドカード「*」(0文字以上の任意文字列)、「?」(1文字の任意文字)、「[abc]」(a・b・cのいずれか1文字)が使える。ExcelのCOUNTIF関数のワイルドカードと似たルールで使える。

Like演算子のワイルドカード一覧と使い方の例です。

ワイルドカード意味使用例一致する例
*(アスタリスク)0文字以上の任意文字列"*山田*"山田、鈴木山田、山田太郎A
?(クエスチョン)1文字の任意文字"山田?"山田太、山田花(2文字のみ)
[文字](角括弧)[]内のいずれか1文字"[AC]"AまたはC(1文字)
[A-Z](範囲)範囲内の1文字"[A-C]*"A・B・Cで始まる文字列
VBA
' 担当者名に「山田」が含まれる行を処理
If Cells(2, 1).Value Like "*山田*" Then
    Cells(2, 2).Value = "東日本担当"
End If

' メールアドレスが.co.jpで終わる場合
If Cells(2, 3).Value Like "*.co.jp" Then
    Cells(2, 4).Value = "法人"
End If

5-3. Is演算子でオブジェクトを比較する

Is演算子はオブジェクト変数の比較専用です。最も多く使うのは「Is Nothing」(オブジェクトが空かどうか)と「Is Not Nothing」(オブジェクトが設定されているかどうか)のパターンです。

VBA
' 検索結果が見つかったかどうかを確認
Dim foundCell As Range
Set foundCell = Range("A:A").Find("山田")

If foundCell Is Nothing Then
    MsgBox "見つかりませんでした"
Else
    MsgBox "発見: " & foundCell.Address
End If

5-4. 日付の比較

VBAで日付を比較する場合は、Date()関数(今日の日付)やCDate()関数(文字列を日付に変換)と組み合わせて使います。日付を比較演算子で直接比較できます。

VBA
' 期限日が今日より前(期限超過)の行を処理
Dim deadline As Date
deadline = CDate(Cells(2, 1).Value)

If deadline < Date() Then
    Cells(2, 2).Value = "期限超過"
    Cells(2, 1).Font.Color = RGB(255, 0, 0)
End If
AI鬼管理山崎 AI鬼管理山崎
日付の比較はシリアル値(数値)として比較されるため、通常の比較演算子がそのまま使えます。ただし、セルの値を日付として読み込む際に型の不一致エラーが起きることがあるため、CDate()でDate型に変換してから比較するのが安全です。

06 If文のネスト(入れ子)と可読性を保つコツ ネストが深くなりすぎないための設計パターンとコードの整理方法

If文の中に別のIf文を書く「ネスト(入れ子)」構造は、複雑な条件分岐を表現する際に使います。しかし、ネストが深くなりすぎるとコードの可読性が大幅に低下し、バグの温床になるため、注意が必要です。

📚 用語解説

ネスト(入れ子):プログラミングでIf文やループ(For文・Do While文)の中に同種の構文を入れる構造。VBAのIfネストは「If 条件1 Then If 条件2 Then 処理 End If End If」の形。インデント(字下げ)が深くなるほど可読性が下がるため、ネストは3段階以内を目安にする。深いネストはElseIfの活用・論理演算子の組み合わせ・サブプロシージャの分割で解消できる。

6-1. ネストの基本例と書き方

VBA
' 部署が「営業部」かつ売上が100万以上の場合の処理
If Cells(2, 1).Value = "営業部" Then
    If Cells(2, 2).Value >= 1000000 Then
        Cells(2, 3).Value = "最優秀"
    Else
        Cells(2, 3).Value = "優良"
    End If
Else
    Cells(2, 3).Value = "対象外"
End If

6-2. ネストを浅くするリファクタリング

上記のネスト例は、And演算子を使って1つのIf文に書き直せます。ネストが深い場合はAnd/Or演算子で結合できないか、早期リターン(Exit Sub/Exit Function)で分岐を減らせないかを検討してください。

VBA
' And演算子でネストを解消した例
If Cells(2, 1).Value = "営業部" And Cells(2, 2).Value >= 1000000 Then
    Cells(2, 3).Value = "最優秀"
ElseIf Cells(2, 1).Value = "営業部" Then
    Cells(2, 3).Value = "優良"
Else
    Cells(2, 3).Value = "対象外"
End If
💡ネストは3段階を上限の目安に

ネストが3段階を超えると可読性が急激に低下します。深いネストになった場合は、内部の処理をSub(サブプロシージャ)またはFunction(関数)に分割することを検討してください。複数のプロシージャに分けることで、それぞれのロジックがシンプルになり、テストもしやすくなります。

代表菅澤 代表菅澤
実務でよく見るのは「ネストが5〜6段になっていて、どのEnd Ifがどれに対応するか分からない」コードです。こういったコードはClaude Codeに「このコードを読みやすくリファクタリングして」と依頼すると、ネストを解消した読みやすいコードに書き直してくれます。
Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理

07 If文 vs Select Case:使い分けの判断基準 同一変数の値を複数パターンでチェックする場合はSelect Caseが読みやすい

VBAには条件分岐の構文としてIf文の他に「Select Case文」もあります。同じ変数の値を複数の値と比較する場合は、Select Caseを使う方がコードがすっきりします。

構文向いているケース向いていないケース読みやすさ
If-ElseIf異なる変数・複雑な複合条件・範囲比較同一変数を多数のパターンで比較複合条件に強い
Select Case同一変数を複数の値や範囲で比較異なる変数を組み合わせた条件同一変数の多分岐に強い

以下は「都道府県コードに応じて地域を返す」処理のIf文とSelect Caseの比較です。

VBA
' If-ElseIfでの書き方(やや冗長)
Dim pref As String
pref = Cells(2, 1).Value

If pref = "北海道" Then
    Cells(2, 2).Value = "北海道"
ElseIf pref = "青森" Or pref = "岩手" Or pref = "宮城" Then
    Cells(2, 2).Value = "東北"
ElseIf pref = "東京" Or pref = "神奈川" Or pref = "埼玉" Or pref = "千葉" Then
    Cells(2, 2).Value = "関東"
Else
    Cells(2, 2).Value = "その他"
End If
VBA
' Select Caseでの書き方(同一変数比較ならこちらが読みやすい)
Dim pref As String
pref = Cells(2, 1).Value

Select Case pref
    Case "北海道"
        Cells(2, 2).Value = "北海道"
    Case "青森", "岩手", "宮城"
        Cells(2, 2).Value = "東北"
    Case "東京", "神奈川", "埼玉", "千葉"
        Cells(2, 2).Value = "関東"
    Case Else
        Cells(2, 2).Value = "その他"
End Select

Select CaseはCase句で「Is >= 80」のような範囲比較もできます。「Case Is >= 90」「Case 80 To 89」のような書き方が可能で、成績評価のような用途に向いています。

条件の種類を確認
同一変数を比較?
複合条件?
判断
同一変数を3パターン以上比較
→ Select Case有利
もしくは
複数変数・And/Or必要
→ If-ElseIf有利
実装
どちらも同じ動作
読みやすい方を選ぶ
AI鬼管理山崎 AI鬼管理山崎
Select CaseはIf文より高速な場合もありますが、Excel VBAのマクロ規模では体感差はほぼありません。実務では「読んだ時にすぐ意味が分かるか」を優先して選ぶのが良いアプローチです。

08 Claude CodeでVBAのIf文を自動生成する 条件の説明を日本語で入力するだけでVBAコードを生成できる実践的な方法

VBAのIf文の書き方を理解しても、「実際にどう書けばいいか迷う」「複雑な条件をコードに落とし込めない」という場面は必ず出てきます。2026年現在、Claude Codeを使えばVBAのIf文を含むマクロコードを自然言語で指示して自動生成できます。

8-1. Claude CodeへのVBAコード生成指示の例

あなたの指示Claude Codeが生成するもの
「B列の売上が100万以上かつC列の達成率が90%以上なら"ダブル達成"、100万以上なら"単独達成"、それ以外は"未達"と入力するVBAマクロ」ElseIf + And演算子を使った適切なVBAコード
「A列の担当者名に"山田"または"鈴木"が含まれる行を別シートにコピーするマクロ」Like演算子 + Or演算子 + 行コピー処理のVBAコード
「このコードのネストが深くて読みにくいので読みやすく書き直して(コードを貼り付け)」And/Or演算子でネストを解消した読みやすいコード
「日付列が今日より30日以内に期限が来る行に黄色を付けるVBAマクロ」日付比較 + Interior.Color のVBAコード

8-2. 非エンジニアがClaude Codeを使う実際の流れ

やりたいことを日本語で説明
「〇〇の場合に△△する
Excelマクロを書いて」
VBAコードが生成される
If文・ElseIf・
演算子を自動選択
ExcelにVBAを貼り付け
Alt+F11 → 標準モジュール
→ 貼り付けて実行
動作確認・修正依頼
「〇〇の場合も追加して」
と伝えて追加修正
✔️VBAコードを書いてもらう:条件と処理内容を日本語で説明する
✔️既存コードの修正:「このコードに〇〇の条件を追加して」と既存コードを貼り付けて依頼
✔️エラーの解決:「このエラーメッセージの原因と修正方法を教えて」と入力
✔️コードの解説:「このVBAコードが何をしているか説明して」と既存コードの理解に活用
✔️リファクタリング:「このコードをもっと読みやすく書き直して」で可読性を向上
🏆
VERDICT
Claude Code活用でVBA作業が劇的に効率化
If文の書き方で迷う時間・エラーで悩む時間・コードのデバッグ時間が大幅削減。VBAコードを1から覚えなくても、やりたいことを日本語で伝えるだけでマクロが完成する時代になった。
代表菅澤 代表菅澤
弊社の支援先で「ExcelのVBAが全く書けないが、日報の自動集計マクロを作りたい」というお客様がいました。Claude Codeに「A1:A10の合計を計算し、100万以上なら達成とB1に入力するマクロ」と伝えるだけで完成したコードを見て、「これなら自分でもできる」とおっしゃっていただきました。

VBAの条件分岐も、Claude Codeで自動生成できます

「If文のElseIfが何段もあって読みにくい」「複雑な条件をVBAで実現したい」——こうしたExcel VBAの課題はClaude Codeで解決できます。条件を日本語で説明するだけでコードが生成されるため、VBAを1から覚えなくても業務自動化が実現できます。

まずは無料相談で、Excelでの自動化の課題をヒアリングさせてください。Claude Codeを活用した業務効率化の具体的な方法をご提案します。

NEXT STEP

この記事の内容を、あなたのビジネスで
実践してみませんか?

AI活用を自社で回せるようになりたい方へ

AI鬼管理

Claude Code・Cowork導入支援から業務設計・社内浸透まで実践ベースで伴走。「自社で回せる組織」を90日で作る経営者向けトレーニング。

よくある質問

Q. VBAのIf文の基本的な書き方を教えてください。

A. VBAのIf文の基本構文は「If 条件 Then 処理 End If」です。処理が1行なら「If 条件 Then 処理」と1行で書くこともできます(この場合End Ifは不要)。条件がFalseの場合の処理も書く場合は「If 条件 Then 処理A Else 処理B End If」の形です。3つ以上の分岐が必要な場合はElseIfを使い「If 条件1 Then 処理1 ElseIf 条件2 Then 処理2 Else 処理3 End If」と書きます。

Q. VBAでElseIfを使う際の注意点は何ですか?

A. ElseIfは条件を上から順に評価し、最初にTrueになった条件の処理を実行して残りをスキップします。そのため、条件の順番が重要です。例えばスコアの評価で「90点以上→S」「80点以上→A」とする場合、必ず90点の条件を先に書く必要があります。逆に80点の条件を先に書くと、90点の人も「A」と判定されてしまいます。また、ElseIfは「ElseIf」と1つの単語で書きます(Else Ifと分けるとブロックが閉じないバグになります)。

Q. VBAのAnd演算子とOr演算子の違いを教えてください。

A. And演算子は「両方の条件がTrueの場合のみTrueを返す」演算子です。Or演算子は「少なくとも一方がTrueの場合にTrueを返す」演算子です。例えば「A >= 80 And B >= 80」は両方80以上の場合のみTrue、「A >= 80 Or B >= 80」はどちらかが80以上ならTrueになります。複数の演算子を組み合わせる場合は、カッコ()で優先順位を明示することが重要です。

Q. VBAのLike演算子の使い方を教えてください。

A. Like演算子は文字列のパターンマッチングに使います。「変数 Like パターン」の形で書き、パターンに一致する場合にTrueを返します。ワイルドカードとして「*」(0文字以上の任意文字列)、「?」(任意の1文字)、「[文字]」(括弧内のいずれか1文字)が使えます。例えば「Cells(2,1).Value Like "*山田*"」は「山田」を含む文字列全てにマッチします。文字列の前後検索、メールアドレスの形式チェックなどに使えます。

Q. If文のネストが深くなりすぎた場合、どう解消すればいいですか?

A. ネストが深い場合の解消策は3つです。①And/Or演算子で複数の条件を1つのIf文にまとめる、②ElseIfで段階的な分岐に書き直す、③内部の処理をSub(サブプロシージャ)やFunction(関数)に分割して、呼び出す形に変える。どれが適切かはロジックの内容によりますが、Claude Codeに「このコードをリファクタリングして」と依頼すると最適な書き直し方を提案してくれます。

Q. VBAのIf文とSelect Caseはどう使い分ければいいですか?

A. 同一の変数を複数の値・パターンと比較する場合はSelect Caseを使うとコードがすっきりします。例えば都道府県・商品コード・ステータス名など、特定の値と比較する多分岐はSelect Caseが向いています。一方で、異なる変数を組み合わせた条件(And/Or演算子が必要な条件)や、「以上・以下」の範囲比較を複数組み合わせる場合はIf-ElseIfの方が柔軟です。

Q. Claude CodeでVBAのIf文を生成することはできますか?

A. できます。Claude Codeに「売上が100万以上かつ達成率が90%以上なら"ダブル達成"と入力するVBAマクロを書いて」のように日本語で条件と処理を説明するだけで、適切なIf文・ElseIf・論理演算子を使ったVBAコードが生成されます。既存のVBAコードのリファクタリングやエラーの原因解明にも活用できます。

AIAI鬼管理

AI鬼管理へのお問い合わせ

この記事を読んで気になった方へ。
AI鬼管理の専門スタッフが、御社に最適な
業務自動化プランを無料でご提案します。

会社名を入力してください
業種を選択してください
お名前を入力してください
正しいメールアドレスを入力してください

1つ以上選択してください
1つ以上選択してください
月額コストを選択してください

約1時間のオンライン面談(Google Meet)です

空き枠を取得中...
面談日時を選択してください

予約確定後、Google Calendarの招待メールをお届けします。
しつこい営業は一切ございません。

監修 最終更新日: 2026年7月18日
菅澤孝平
菅澤 孝平 株式会社GENAI 代表取締役
  • AI業務自動化サービス「AI鬼管理」を運営 — Claude Code を活用し、経営者の業務を「AIエージェントに任せる仕組み」へ転換するパーソナルトレーニングを 伴走構築 で提供。日報・採用・問い合わせ対応・経費精算・議事録・データ集計・営業リスト等の定型業務を、AIに代行させる体制を経営者と一緒に作り込む
  • Claude Code 実装ノウハウを 経営者・法人クライアント に直接指導。生成AIを「便利ツール」ではなく 「業務を任せる存在」 として運用する手法を体系化
  • 「やらせ切る管理」メソッドの開発者。シンゲキ株式会社(2021年設立・鬼管理専門塾運営)にて累計3,000名以上の学習者を志望校合格に導いた管理メソッドを、AI × 経営者支援 に転用
  • 著書『3カ月で志望大学に合格できる鬼管理』(幻冬舎)、『親の過干渉こそ、最強の大学受験対策である。』(講談社)
  • メディア出演: REAL VALUE / カンニング竹山のイチバン研究所 / ええじゃないかBiz 他
  • 明治大学政治経済学部卒
現在は AI鬼管理(Claude Code活用の伴走型パーソナルトレーニング)を主事業とし、経営者と二人三脚で「AIに業務を任せる仕組み」を実装。「実行を強制する環境」を AI で構築する手法を、自社の実運用知見をもとに発信している。