Excel VBAで条件分岐したプログラミングをする方法【初心者向け】

※当サイトは Google Adsense、Amazon アソシエイト等 アフィリエイト広告を利用して収益を得ています。

Excel VBAで条件分岐したプログラミングをする

Excel VBAは、Microsoft Excelで使用できるプログラミング言語です。

Excelをより効率的に使用するためのプログラミング言語です。Excelをもっと便利に使いたい人におすすめのプログラミング言語です。Excel VBAを覚えると、Excelの作業が楽になります

具体的に出来ることは以下のとおりです。

  • Excelの操作を自動化
  • 独自の機能を作成
  • データの分析・処理
  • レポートの作成
  • フォームの作成
  • マクロの作成

このExcel VBAというカテゴリーでは、私が学んだExcel VBAのコツやテクニックを紹介していきます。
今回は、Excel VBAで条件分岐したプログラミングをする方法について、ご紹介します。

Excel VBAで条件分岐したプログラミングをする方法

プログラミングの条件分岐とは

プログラミングの条件分岐とは、ある条件式の結果によって、次に行う処理を切り替えること、また、そのような命令文のことを言います。簡単に言うと、「もし~ならば~」という形式のプログラミングのことです。

Excel VBAでは、条件分岐したプログラミングもできます。

今回は、Excel VBAで条件分岐したプログラミングをする方法をご紹介します。

① 「もし◯◯ならば、☓☓」という場合

条件分岐はIf文を使います。

「もし◯◯ならば、☓☓」という場合は、以下のコードを書きます。

If 条件式 Then

 条件式が成立する場合の処理

End If

なお、このコードで使われるIfは「もし」という意味で、Thenは「ならば」という意味です。

「もし◯◯ならば、☓☓」の具体例

以下の表で、会員種別がSの場合は、メッセージボックスで「100円」と表示されるコードを書いてみます。

Excel VBAで条件分岐したプログラミングをする方法【初心者向け】

コードは以下のようになります。

Excel VBAで条件分岐したプログラミングをする方法【初心者向け】

コードの説明をします。

条件式は、言葉で書くと「もし会員種別がSならば、100円です」となります。

これをExcel VBAで書く場合は、以下のようになります。

会員種別のSが入っているセルはB3です。セルのB3の値を意味する

Range(“B3”).Value

と書きます。

セルのB3に入っている文字はSです。

これは、別の言い方をすると、B3の値はSと等しいということになります。

値が等しい場合は「=」を使います。

そうすると「会員種別はSと等しい」とコードを書くと

Range(“B3”).Value = “S”

となります。Sがダブルコーテーション(”)で囲まれているのは、Sが文字列だからです。Excel VBAでは、文字列の場合はダブルコーテーション(”)で囲むというのがルールです。

そしてこの条件式をメッセージボックスで表示させるには、

MsgBox “100円”

と書きます。これは、メッセージボックス(MsgBox)に、文字列の100円を表示させるというコードです。

ではF5キーを押して実行します。

すると以下のようにメッセージボックスに100円と表示されます。

Excel VBAで条件分岐したプログラミングをする方法【初心者向け】

② 「もし◯◯ならば、☓☓、◯◯でなければ△△」という場合

「もし◯◯ならば、☓☓、◯◯でなければ△△」という場合は、以下のコードを書きます。

If 条件式 Then

 条件式が成立する場合の処理

Else

 条件式が成立しない場合の処理

End If

Elseは「~でなければ」という意味です。

「もし◯◯ならば、☓☓、◯◯でなければ△△」の具体例

以下の表で、会員種別がSではなくAの場合、メッセージボックスで「300円」と表示されるコードを書いてみます。

Excel VBAで条件分岐したプログラミングをする方法【初心者向け】

コードは以下のようになります。

Excel VBAで条件分岐したプログラミングをする方法【初心者向け】

コードの説明をします。

以下のコードの意味は、B3の値がSならば、メッセージボックスに100円と表示される、というものです。

If Range(“B3”).Value = “S” Then

 MsgBox “100円”

ただB3には、Aが入っています。

ですので、以下のコードを書きます。これは「B3の値がSでなければ、メッセージボックスに300円と表示させる」という意味です。

Else

     MsgBox “300円”

ではF5キーを押して実行します。

すると以下のようにメッセージボックスに300円と表示されます。

Excel VBAで条件分岐したプログラミングをする方法【初心者向け】

③ 「もし◯◯ならば、☓☓、▢▢ならば☆☆、◯◯又は▢▢でなければ△△」という場合

「もし◯◯ならば、☓☓、▢▢ならば☆☆、◯◯又は▢▢でなければ△△」という場合のコードは以下の通りです。

If 条件式1 Then

条件式1が成立する場合の処理

 ElseIf 条件式2 Then

条件式2が成立する場合の処理

 Else

いずれの条件も成立しない場合の処理

End If

If文にElseIfで始まるコードを書くと、条件式1が成立しないが、条件式2が成立する場合、その処理を行います。

Elselfは複数使うことができます。

「もし◯◯ならば、☓☓、▢▢ならば☆☆、◯◯又は▢▢でなければ△△」という場合の具体例

以下の表で、会員種別がSの場合はメッセージボックスで100円、Aの場合はメッセージボックスで300円、それ以外の場合は、メッセージボックスで「入力値が不正です」と表示されるコードを書いてみます。

Excel VBAで条件分岐したプログラミングをする方法【初心者向け】

コードは以下のようになります。

Excel VBAで条件分岐したプログラミングをする方法【初心者向け】

このコードの説明をします。

If Range(“B3”).Value = “S” Then

     MsgBox “100円

は、1つ目の条件になります。この表では、会員種別がSの場合はメッセージボックスで100円と表示するという意味になります。

ElseIf Range(“B3”).Value = “A” Then

     MsgBox “300円”

は2つ目の条件になります。この表では、会員種別がAの場合はメッセージボックスで300円と表示するという意味になります。

Else

     MsgBox “入力値が不正です”

は、SでもAでもない場合は、メッセージボックスに「入力値が不正です」と表示するという意味になります。

最初にセルのB3にSと入力してF5キーを押します。

すると以下のメッセージボックスが出ます。

Excel VBAで条件分岐したプログラミングをする方法【初心者向け】

メッセージボックスに100円と表示されます。

次にセルのB3にAと入力してF5キーを押します。

すると以下のメッセージボックスが出ます。

Excel VBAで条件分岐したプログラミングをする方法【初心者向け】

メッセージボックスに300円と表示されます。

次にセルのB3にSでもなくAでもない、例えばBと入力してF5キーを押します。

すると以下のメッセージボックスが出ます。

Excel VBAで条件分岐したプログラミングをする方法【初心者向け】

B3にSでもなくAでもないBが入力されているので、メッセージボックスに「入力値が不正です」と表示されます。

今回は、メッセージボックスに表示させるという方法で説明しましたが、For文を使ったコードを使用すれば、料金のセルに、会員種別がSの場合は100円、Aの場合は300円、それ以外は「入力値が不正です」と表示させることができます。

※(For文については、Excel VBAの繰り返し(For文)の使い方【初心者向け】、Excel VBAで最終行を取得する方法【初心者向け】 というブログ記事に書いてありますので、ご覧ください)。

表は以下の通りです。

Excel VBAで条件分岐したプログラミングをする方法【初心者向け】

コードは以下の通りです。

Excel VBAで条件分岐したプログラミングをする方法【初心者向け】

F5キーを押します。

Excel VBAで条件分岐したプログラミングをする方法【初心者向け】

会員種別がSの場合は100円、Aの場合は300円、それ以外は「入力値が不正です」と表示されています。

タイトルとURLをコピーしました