excel room

事務作業で役に立つエクセル関数などを解説します。

Excelマクロ&vba[実践ビジネス入門講座]解説| IFとは?

本ブログは、著者国本温子さんの『Excelマクロ&vba[実践ビジネス入門講座]』を解説させて頂くブログとなります。

 

条件分岐について

条件分岐とは、条件の結果によって異なる処理を実行する仕組みです。

例) 明日は休日か?

Yes → 夜更かしして映画を観る

No → 寝る

上のようにYesかNoで実行する処理を決めます。

 

マクロの処理で例えるなら、

もしA1セルの数値が10以上であれば、

A1セルを青色に塗る。

違えば、

A1セルを赤色に塗る。

 

このようなコードを組んで、作業を自動化させます。

条件分岐はマクロではとても重要な役割を果たすのでしっかりと理解しましょう。

逆に、条件分岐を理解できれば、マクロをほとんど習得したようなものです。

 

 

IF構文

IFとは、エクセルの関数でもあるように、

もし、○○なら→△△を実行する

それ以外なら→■■を実行するという意味になります。

 

マクロでIFを使えるようになると、

セルを削除するや、シートの名前を変更する、シートを追加するといった、

関数ではできない処理が行えるようになります!

 

例えば、売上表を対象として、売上高が10万円未満のセルは削除することや、

10万円以上の売上高があれば、新しいシートを作成し、コピーするなどの処理が可能になります。

f:id:omulife:20220129220554p:plain

 

IFステートメントの記述方法

上記で説明したIF文の記述方法をご紹介します。

IF 条件式 Then

  処理の内容

End If

 

これが条件分岐の構文となります。

はじめに説明したA1の数値が10以上ならセルを青色にする

という処理をマクロで記述すると、

IF Range("A1") >= 10 Then

  Range("A1").Interior.Color = vbBlue

End If

 

条件を記述する比較演算子は下記表をご参考ください。

f:id:omulife:20220129223854p:plain

 

 

”.Interior.Color” はセル背景の色という意味で、

”.Interior.Color = vbBlue”のように、色を=で指定します。

基本的には”vb+ 色”と記述すればその色になります。(vbRedやvbBlackなど)

 

次に条件式がYesなら○○、Noなら△△という処理の記述方法をご紹介します。

IF 条件式 Then

  条件式がYesの場合に処理する内容

Else

  条件式がNoの場合に処理する内容

End If

 

A1セルの数値が10以上であれば、A1セルを青色に、

違えば赤色に塗るという処理内容を紹介します。

IF Range("A1") >= 10 Then

  Range("A1").Interior.Color = vbBlue

Else

  Range("A1").Interior.Color = vbRed

End If

このように、Elseを付け足すだけで簡単にYes Noで処理結果を分けることができます。

 

複数の条件を組み合わせる方法

先程はもし○○ならAを実行、違えばBを実行という構文を紹介しましたが、

もし○○かつ△△ならや、もし○○もしくは△△なら

というような複数の条件を組み合わせる方法をご紹介します。

f:id:omulife:20220129230745p:plain

AndとOrを使用することで複数条件を組合すことができます。

例)もしA1セルの数値が5以上かつ15以下であれば

コード) If Range("A1") <= 5 And Range("A1") >= 15 Then

 

例)もしA1セルの数値がB1セルより大きいもしくはB2セルより大きければ

コード) If Range("A1") < Range("B1") Or Range("A1") < Range("B2") Then

このように、複数条件も簡単に書くことができます。

 

3つ以上の条件を判定して処理する場合

これまで、"条件に合えば処理を行う"、"条件にYesならA、NoならB”の記述方法をご紹介しましたが、

ここでは3つ以上の条件に応じて処理を行う方法をご紹介します。

 

IF 条件1 Then

  条件1がYesの場合の処理

ElseIf 条件2 Then

  条件2がYesの場合の処理

ElseIf 条件3 Then

  条件3がYesの場合の処理

Else

  どれにも該当しない場合の処理

End If

 

このように、Else Ifとすることで3つ以上の条件に対応可能です。

また、上では条件3までしか書いていませんが、同様に4つ以上も加えることができます。

 

 

例) A1セルの数値を判定する。90点以上ならB1セルに"優"、

70点以上なら"良"、60点以上なら"可"、それ以下なら"不可"

If Range("A1") >= 90 Then

  Range("B1") = "優"

ElseIf Range("A1") >= 70 Then

  Range("B1") = "良"

ElseIf Range("A1") >= 60 Then

  Range("B1") = "可"

Else

  Range("B1") = "不可"

End If

 

このようにコードが長くなりますが、複数条件にも対応可能です!

 

エクセルマクロに関する内容をyoutubeで発信しています。

ぜひご覧ください!

www.youtube.com

 

ブログの解説本 Excelマクロ&vba[実践ビジネス入門講座]はこちら