<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ElseIf &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/elseif/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Fri, 27 Mar 2026 22:49:49 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>ElseIf &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>VBA If文の使い方｜条件分岐を基本から実務コードまで解説</title>
		<link>https://mashukabu.com/excel-vba-conditional-branch-explanation/</link>
					<comments>https://mashukabu.com/excel-vba-conditional-branch-explanation/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 14 Nov 2021 08:04:42 +0000</pubDate>
				<category><![CDATA[VBA・マクロ]]></category>
		<category><![CDATA[And Or]]></category>
		<category><![CDATA[Else]]></category>
		<category><![CDATA[ElseIf]]></category>
		<category><![CDATA[If文]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[条件分岐]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=351</guid>

					<description><![CDATA[VBA If文の使い方を基本構文から実務コードまで解説します。ElseIf・Elseの書き方、複数条件（And/Or）、Select Caseとの使い分け、よくあるエラーの対処法まで網羅。コピペで動くサンプルコード付きです。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「VBAのIf文って、なんだか難しそう&#8230;&#8230;」</p>



<p class="wp-block-paragraph">そう思って手が止まっていませんか？ VBAの条件分岐はプログラミングの基本中の基本です。しかし初めて見ると記号や英語の羅列に見えて、つい身構えてしまいますよね。</p>



<p class="wp-block-paragraph">でも安心してください。If文の仕組みは、実は日常会話とほとんど同じです。この記事ではVBA If文の基本構文から実務で使えるコードまで、一つずつ丁寧に解説していきます。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">VBA If文（条件分岐）とは？</a></li><li><a href="#toc2" tabindex="0">VBEの起動とコードの書き方</a><ol><li><a href="#toc3" tabindex="0">VBEの開き方</a></li><li><a href="#toc4" tabindex="0">標準モジュールの挿入</a></li></ol></li><li><a href="#toc5" tabindex="0">If文の基本構文（コピペで動くコード）</a><ol><li><a href="#toc6" tabindex="0">Ifだけのシンプルな分岐</a></li><li><a href="#toc7" tabindex="0">If&#8230;Else（2択の分岐）</a></li><li><a href="#toc8" tabindex="0">If&#8230;ElseIf&#8230;Else（3つ以上の分岐）</a></li></ol></li><li><a href="#toc9" tabindex="0">If文の実践コード（業務で使えるバージョン）</a><ol><li><a href="#toc10" tabindex="0">セルの値で処理を分岐する例</a></li><li><a href="#toc11" tabindex="0">複数条件を組み合わせる（And / Or）</a></li></ol></li><li><a href="#toc12" tabindex="0">If文とSelect Caseの使い分け</a></li><li><a href="#toc13" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc14" tabindex="0">End Ifの書き忘れ</a></li><li><a href="#toc15" tabindex="0">比較演算子のミス</a></li><li><a href="#toc16" tabindex="0">型の不一致</a></li></ol></li><li><a href="#toc17" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">VBA If文（条件分岐）とは？</span></h2>



<p class="wp-block-paragraph">条件分岐とは、<strong>条件に応じて処理を切り替える仕組み</strong>のことです。</p>



<p class="wp-block-paragraph">日常で例えるとこんな感じです。</p>



<p class="wp-block-paragraph">「明日晴れたらピクニックに行こう。くもりだったら映画にして、雨だったら家でのんびりしよう」</p>



<p class="wp-block-paragraph">この会話、無意識に条件分岐をしていますよね。「天気」という条件によって「行き先」という処理を変えているわけです。</p>



<p class="wp-block-paragraph">VBAのIf文も、やっていることはまったく同じです。「もし○○だったら△△する、そうでなければ□□する」をコードで書いているだけなんですよ。</p>



<h2 class="wp-block-heading"><span id="toc2">VBEの起動とコードの書き方</span></h2>



<p class="wp-block-paragraph">If文を試すには、まずVBE（Visual Basic Editor）を開く必要があります。VBEの画面構成について詳しく知りたい方は、<a href="https://mashukabu.com/excel-vba-vbe-menu-explanation/">VBEの画面の見方を図解で解説</a>もあわせてどうぞ。</p>



<h3 class="wp-block-heading"><span id="toc3">VBEの開き方</span></h3>



<p class="wp-block-paragraph">一番かんたんな方法は、Excelを開いた状態で <strong>Alt + F11</strong> キーを押すことです。</p>



<p class="wp-block-paragraph">開発タブが表示されていない場合でも、このショートカットなら直接VBEを開けます。開発タブを表示させたい場合は「ファイル」→「オプション」→「リボンのユーザー設定」へ進みましょう。そこで「開発」にチェックを入れてくださいね。</p>



<h3 class="wp-block-heading"><span id="toc4">標準モジュールの挿入</span></h3>



<p class="wp-block-paragraph">VBEが開いたら、コードを書く場所を用意します。</p>



<p class="wp-block-paragraph">メニューの「挿入」→「標準モジュール」を選んでください。白い画面が表示されたら、そこにコードを貼り付けて実行できます。</p>



<p class="wp-block-paragraph">実行方法は <strong>F5キー</strong> を押すか、メニューの「実行」→「Sub/ユーザーフォームの実行」を選びます。</p>



<h2 class="wp-block-heading"><span id="toc5">If文の基本構文（コピペで動くコード）</span></h2>



<p class="wp-block-paragraph">ここからは、実際にコピペして動かせるコードで解説していきます。</p>



<h3 class="wp-block-heading"><span id="toc6">Ifだけのシンプルな分岐</span></h3>



<p class="wp-block-paragraph">まずは一番シンプルな形です。「条件に合ったときだけ処理する」パターンです。</p>



<pre class="wp-block-code"><code>Sub シンプルなIf()
    Dim 天気 As String '--- 天気を入れる変数 ---
    天気 = &quot;晴れ&quot;

    If 天気 = &quot;晴れ&quot; Then
        MsgBox &quot;ピクニックに出かけよう！&quot;
    End If
End Sub</code></pre>



<p class="wp-block-paragraph">日本語に置き換えると、こうなります。</p>



<ul class="wp-block-list"><li><code>If</code> → もし</li><li><code>天気 = "晴れ"</code> → 天気が「晴れ」だったら</li><li><code>Then</code> → そのときは</li><li><code>End If</code> → ここまで</li></ul>



<p class="wp-block-paragraph">ポイントは <strong>If で始めたら、必ず End If で閉じる</strong> ことです。これを忘れるとエラーになるので、Ifを書いたらすぐにEnd Ifも書いておくのがおすすめです。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-vba-variable-explanation/">変数（Dim）の使い方</a>がまだよく分からないという方は、先にそちらの記事を読んでおくとスムーズですよ。</p>



<h3 class="wp-block-heading"><span id="toc7">If&#8230;Else（2択の分岐）</span></h3>



<p class="wp-block-paragraph">次は「条件に合ったらAの処理、合わなかったらBの処理」という2択パターンです。</p>



<pre class="wp-block-code"><code>Sub 二択の分岐()
    Dim 天気 As String '--- 天気を入れる変数 ---
    天気 = &quot;雨&quot;

    If 天気 = &quot;晴れ&quot; Then
        MsgBox &quot;ピクニックに出かけよう！&quot;
    Else
        MsgBox &quot;家でのんびり過ごそう&quot;
    End If
End Sub</code></pre>



<p class="wp-block-paragraph"><code>Else</code> は「その他」という意味です。If の条件に合わなかった場合、すべてここに流れてきます。</p>



<p class="wp-block-paragraph">このコードでは天気が「雨」なので、Else側の「家でのんびり過ごそう」が表示されます。天気を「晴れ」に書き換えて実行すると、結果が変わりますよ。</p>



<h3 class="wp-block-heading"><span id="toc8">If&#8230;ElseIf&#8230;Else（3つ以上の分岐）</span></h3>



<p class="wp-block-paragraph">条件を3つ以上に分けたいときは <code>ElseIf</code> を使います。冒頭の天気の例をそのままコードにしてみましょう。</p>



<pre class="wp-block-code"><code>Sub 天気で行き先を決める()
    Dim 天気 As String '--- 天気を入れる変数 ---
    天気 = &quot;くもり&quot;

    If 天気 = &quot;晴れ&quot; Then
        MsgBox &quot;ピクニックに出かけよう！&quot;
    ElseIf 天気 = &quot;くもり&quot; Then
        MsgBox &quot;映画を見に行こう&quot;
    Else
        MsgBox &quot;家でのんびり過ごそう&quot;
    End If
End Sub</code></pre>



<p class="wp-block-paragraph">処理の流れを整理しておきます。</p>



<ol class="wp-block-list"><li>まず <code>If</code> の条件をチェック（天気 = &#8220;晴れ&#8221;？）</li><li>合わなければ <code>ElseIf</code> の条件をチェック（天気 = &#8220;くもり&#8221;？）</li><li>どれにも合わなければ <code>Else</code> の処理を実行</li></ol>



<p class="wp-block-paragraph"><code>ElseIf</code> は何個でも追加できます。ただし、<strong>最初の条件は必ず <code>If</code></strong> で書く必要があります。<code>ElseIf</code> だけで始めることはできないので注意してくださいね。</p>



<p class="wp-block-paragraph">If文の3つのパターンを表にまとめておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>パターン</th><th>書き方</th><th>使いどころ</th></tr></thead><tbody><tr><td>If&#8230;End If</td><td>条件に合ったときだけ処理</td><td>1つの条件だけチェックしたいとき</td></tr><tr><td>If&#8230;Else&#8230;End If</td><td>2択の分岐</td><td>「はい/いいえ」で処理を分けたいとき</td></tr><tr><td>If&#8230;ElseIf&#8230;Else&#8230;End If</td><td>3つ以上の分岐</td><td>条件ごとに違う処理をしたいとき</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc9">If文の実践コード（業務で使えるバージョン）</span></h2>



<p class="wp-block-paragraph">基本を押さえたところで、実際の業務で使えるコードを見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc10">セルの値で処理を分岐する例</span></h3>



<p class="wp-block-paragraph">たとえば、テストの点数がセルに入力されていて、隣のセルに判定結果を書き込みたい場合です。A列に点数が入っていて、B列に判定を出力します。</p>



<pre class="wp-block-code"><code>Sub テスト判定()
    Dim i As Long       '--- 行カウンター ---
    Dim lastRow As Long '--- 最終行 ---
    Dim 点数 As Long    '--- 判定対象の点数 ---

    lastRow = Cells(Rows.Count, 1).End(xlUp).Row '--- A列の最終行を取得 ---

    For i = 2 To lastRow '--- 2行目（データ開始行）から最終行まで ---
        点数 = Cells(i, 1).Value

        If 点数 &gt;= 80 Then
            Cells(i, 2).Value = &quot;合格&quot;
        ElseIf 点数 &gt;= 60 Then
            Cells(i, 2).Value = &quot;追試&quot;
        Else
            Cells(i, 2).Value = &quot;不合格&quot;
        End If
    Next i

    MsgBox &quot;判定が完了しました！&quot;
End Sub</code></pre>



<p class="wp-block-paragraph">このコードでは <a href="https://mashukabu.com/excel-vba-howto-use-for/">For文</a> を使ってA列のデータを1行ずつ処理しています。<a href="https://mashukabu.com/excel-vba-howto-get-lastrow/">最終行の取得</a>を使っているので、データが何行あっても自動で対応できますよ。</p>



<p class="wp-block-paragraph">セルの指定方法について詳しくは、<a href="https://mashukabu.com/excel-vba-howto-use-range/">Rangeの使い方</a>で解説しています。</p>



<h3 class="wp-block-heading"><span id="toc11">複数条件を組み合わせる（And / Or）</span></h3>



<p class="wp-block-paragraph">「点数が80点以上<strong>かつ</strong>出席率が90%以上のとき合格」のように、複数の条件を同時にチェックしたい場合は <strong>And</strong> や <strong>Or</strong> を使います。</p>



<pre class="wp-block-code"><code>Sub 複数条件の判定()
    Dim 点数 As Long   '--- テストの点数 ---
    Dim 出席率 As Long '--- 出席率（%） ---

    点数 = Range(&quot;A2&quot;).Value
    出席率 = Range(&quot;B2&quot;).Value

    If 点数 &gt;= 80 And 出席率 &gt;= 90 Then
        MsgBox &quot;合格です！&quot;
    ElseIf 点数 &gt;= 80 Or 出席率 &gt;= 90 Then
        MsgBox &quot;条件付き合格です&quot;
    Else
        MsgBox &quot;残念ですが不合格です&quot;
    End If
End Sub</code></pre>



<p class="wp-block-paragraph">使い分けをまとめます。</p>



<figure class="wp-block-table"><table><thead><tr><th>演算子</th><th>意味</th><th>例</th></tr></thead><tbody><tr><td>And</td><td>両方の条件がTrueのとき</td><td>点数 >= 80 And 出席率 >= 90</td></tr><tr><td>Or</td><td>どちらかの条件がTrueのとき</td><td>点数 >= 80 Or 出席率 >= 90</td></tr><tr><td>Not</td><td>条件を反転させる</td><td>Not 点数 >= 80（80点未満のとき）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">And と Or を同じIf文に混ぜるときは、括弧 <code>()</code> で優先順位を明確にしましょう。括弧がないと、意図しない判定になることがあります。</p>



<p class="wp-block-paragraph">文字列のパターンで条件を分岐したい場合は、<a href="https://mashukabu.com/excel-vba-like-wildcard/">Like演算子</a>を使う方法もあります。ワイルドカードで柔軟な文字列比較ができるので、あわせてチェックしてみてくださいね。</p>



<h2 class="wp-block-heading"><span id="toc12">If文とSelect Caseの使い分け</span></h2>



<p class="wp-block-paragraph">VBAにはIf文のほかに、<strong>Select Case文</strong>という条件分岐の方法もあります。</p>



<p class="wp-block-paragraph">どちらを使うか迷ったときの目安はこちらです。</p>



<figure class="wp-block-table"><table><thead><tr><th>条件</th><th>おすすめの書き方</th></tr></thead><tbody><tr><td>条件が2つ以下</td><td>If文で十分</td></tr><tr><td>1つの値に対して3つ以上の分岐</td><td>Select Caseがスッキリ</td></tr><tr><td>複数の変数を同時に判定</td><td>If文（And/Or）の方が柔軟</td></tr><tr><td>範囲で分岐したい（○○以上など）</td><td>どちらでもOK</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">たとえば、さきほどの天気の例のように「1つの変数の値で3つ以上に分岐する」場合は、Select Caseで書くとコードが見やすくなります。</p>



<p class="wp-block-paragraph">Select Case文の詳しい使い方は、<a href="https://mashukabu.com/excel-vba-howto-use-select-case/">Select Case文で条件分岐を見やすく書く方法</a>で解説しています。あわせて読んでみてくださいね。</p>



<h2 class="wp-block-heading"><span id="toc13">よくあるエラーと対処法</span></h2>



<p class="wp-block-paragraph">If文を書いていて遭遇しやすいエラーをまとめました。</p>



<h3 class="wp-block-heading"><span id="toc14">End Ifの書き忘れ</span></h3>



<p class="wp-block-paragraph">一番多いのがこのエラーです。「<strong>コンパイル エラー: End If に対応する If がありません</strong>」と表示されます。</p>



<pre class="wp-block-code"><code>'--- 悪い例：End Ifがない ---
Sub エラー例1()
    If Range(&quot;A1&quot;).Value &gt; 0 Then
        MsgBox &quot;正の数です&quot;
    '--- ここにEnd Ifが必要！ ---
End Sub</code></pre>



<p class="wp-block-paragraph">If文が入れ子（ネスト）になっていると、どのIfにEnd Ifが対応しているか分かりにくくなります。<strong>Ifを書いたらすぐにEnd Ifも書く</strong>習慣をつけると、このエラーを防げますよ。</p>



<p class="wp-block-paragraph">なお、変数の宣言忘れによるバグを防ぐには、<a href="https://mashukabu.com/excel-vba-option-explicit/">Option Explicitの設定</a>がおすすめです。コードの先頭に1行書いておくだけで、未宣言の変数をエラーで知らせてくれます。</p>



<h3 class="wp-block-heading"><span id="toc15">比較演算子のミス</span></h3>



<p class="wp-block-paragraph">「等しい」を表す <code>=</code> と「代入」の <code>=</code> を混同するケースです。VBAではどちらも <code>=</code> を使います。If文の中では比較として扱われるので、実は心配不要です。</p>



<p class="wp-block-paragraph">ただし、文字列を比較するときに <code>=</code> ではなく <code>==</code> と書いてしまうのはNGです。VBAには <code>==</code> という演算子はありません。</p>



<pre class="wp-block-code"><code>'--- 悪い例：==はVBAでは使えない ---
If 天気 == &quot;晴れ&quot; Then  '← コンパイルエラー！</code></pre>



<h3 class="wp-block-heading"><span id="toc16">型の不一致</span></h3>



<p class="wp-block-paragraph">セルの値を数値として比較したいのに、セルに文字列が入っているとエラーになることがあります。</p>



<pre class="wp-block-code"><code>'--- 安全な書き方：IsNumericで事前チェック ---
If IsNumeric(Range(&quot;A1&quot;).Value) Then
    If CLng(Range(&quot;A1&quot;).Value) &gt;= 80 Then
        MsgBox &quot;合格&quot;
    End If
Else
    MsgBox &quot;数値を入力してください&quot;
End If</code></pre>



<p class="wp-block-paragraph"><code>IsNumeric</code> で数値かどうかを先にチェックしておくと、実行時エラーを防げます。</p>



<p class="wp-block-paragraph">エラーパターンをまとめておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー内容</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>End Ifに対応するIfがありません</td><td>End Ifの書き忘れ</td><td>Ifを書いたらすぐEnd Ifも書く</td></tr><tr><td>構文エラー</td><td>==の使用、Thenの書き忘れ</td><td>=を使う、Thenを忘れずに書く</td></tr><tr><td>型の不一致</td><td>文字列と数値の比較</td><td>IsNumericで事前チェック</td></tr><tr><td>処理が通らない</td><td>ElseIfの条件が前のIfと重複</td><td>条件の順序を見直す</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">マクロを保存するときは、ファイル形式を <strong>Excelマクロ有効ブック（.xlsm）</strong> にするのを忘れないでください。通常の .xlsx で保存すると、せっかく書いたマクロが消えてしまいます。</p>



<h2 class="wp-block-heading"><span id="toc17">まとめ</span></h2>



<p class="wp-block-paragraph">この記事では、VBA If文の使い方を基本から実務コードまで解説しました。</p>



<p class="wp-block-paragraph">ポイントをおさらいしておきましょう。</p>



<ul class="wp-block-list"><li>If文は <strong>「もし○○だったら△△する」</strong> という条件分岐の基本構文</li><li><strong>If / ElseIf / Else</strong> の3つを組み合わせて、複数の条件を処理できる</li><li>複数の条件を同時にチェックするには <strong>And / Or</strong> 演算子を使う</li><li>条件が3つ以上で1つの値の分岐なら、<a href="https://mashukabu.com/excel-vba-howto-use-select-case/">Select Case文</a>の方がスッキリ書ける</li><li><strong>If を書いたら End If もセットで書く</strong>（エラー防止の基本）</li></ul>



<p class="wp-block-paragraph">条件分岐はVBAの中でもっともよく使う構文です。まずはこの記事のサンプルコードをコピーして、実際に動かしてみてください。変数の値を変えて結果がどう変わるか試してみると、理解がぐっと深まりますよ。</p>



<p class="wp-block-paragraph">If文を使いこなせるようになったら、<a href="https://mashukabu.com/excel-vba-howto-use-for/">For文でのループ処理</a>や<a href="https://mashukabu.com/how-to-use-do-loop/">Do Loopでの繰り返し処理</a>にも挑戦してみてくださいね。VBAの学習全体の進め方を知りたい方は、<a href="https://mashukabu.com/excel-vba-learning-roadmap/">VBAを学習する順番と心構え</a>を参考にしてみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-vba-conditional-branch-explanation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
