教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 構文】IF文(条件分岐)の使い方を知りたいです。教えて!

f:id:m_kbou:20200417203230p:plain

ExcelVBAでプログラミングをしていくと、ある条件の時だけ「処理を実行したい」や「内容を変更したい」等の分岐判定を行いたいケースがあります。そのような場合は、IF文を使用する事で処理を分岐させる事ができるようになります。今回はIF文の使い方について紹介します。

 

 

構文

記述方法は以下の様になります。 

If[条件式]Then
  [処理①]
Else
  [処理②]
End If

[説明]:

条件で処理を分岐させるために使用します。処理の分岐とは「もし◯◯なら△△を行い、そうでなければ◇◇を行う」と言った処理のことを指します。

[条件式] 分岐させる条件を記述します。
※以下の「比較演算子」や「論理演算子」を用いて記述します。
[処理①] [条件式]に一致した場合に実行する処理を記述します。
[処理②] [条件式]に不一致の場合に実行する処理を記述します。
比較演算子 演算名 使用例 結果
= 等しい 1=2 ×(不一致)
<> 等しくない 1<>2 ○(一致)
> 大きい 1>2 ×(不一致)
< 小さい 1<2 ○(一致)
>= 以上 1>=2 ×(不一致)
<= 以下 1<=2 ○(一致)
論理演算子 使用例 内容
And A And B AとBの両方を満たした場合
Or A Or B A又はBのいずれかを満たした場合
Not Not A Aに当てはまらない場合

 

使い方

使い方について具体的に説明します。

分岐する条件が1つの場合の記述方法

分岐する条件が1つの場合について、以下画面を元に説明していきます。

[画面]:

f:id:m_kbou:20190513074611p:plain

※<合否判定>ボタンには、以下のプログラミング例が登録されています。

[プログラミング例]:

Sub 合否判定()

  If Range("A2") >= 80 Then
    MsgBox "合格です!"
  Else
    MsgBox "不合格です!"
  End If

End Sub

内容は、
・A2セルが80以上ならば、「合格です!」を
・A2セルが80未満ならば、「不合格です!」を
MsgBoxで表示するとの意味になります。

f:id:m_kbou:20210205081913p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

(例1)A2セルに90を入力し、<合否判定>ボタンをクリックします。

 f:id:m_kbou:20190513093532p:plain

(例2)A2セルに60を入力し、<合否判定>ボタンをクリックします。

 f:id:m_kbou:20190513093548p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

分岐する条件が1つの場合の記述方法のついての説明は以上です。

 

分岐する条件が複数の場合の記述方法

分岐する条件が複数の場合について、以下画面を元に説明していきます。
※分岐条件の中に更に分岐条件がある場合の説明となります。

[画面]:

f:id:m_kbou:20190513085844p:plain

※<合否判定>ボタンには、以下のプログラミング例が登録されています。

[プログラミング例]:

Sub 合否判定()

  If Range("A2") >= 80 Then
    If Range("B2") = "男" Then
      MsgBox "合格です!"
    Else
      MsgBox "不合格です!"
    End If
  Else
    If Range("B2") = "女" Then
      MsgBox "合格です!"
    Else
      MsgBox "不合格です!"
    End If
  End If

End Sub

内容は、
・A2セルが80以上でB2セルが男の場合、「合格です!」を
・A2セルが80以上でB2セルが男以外の場合、「不合格です!」を
・A2セルが80未満でB2セルが女の場合、「合格です!」を
・A2セルが80未満でB2セルが女以外の場合、「不合格です!」を
MsgBoxで表示するとなります。

f:id:m_kbou:20210205094343p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

(例1)A2セルに90、B2セルに男を入力し、<合否判定>ボタンをクリックします。

f:id:m_kbou:20190513085902p:plain

(例2)A2セルに90、B2セルに女を入力し、<合否判定>ボタンをクリックします。

f:id:m_kbou:20190513085918p:plain

(例3)A2セルに60、B2セルに女を入力し、<合否判定>ボタンをクリックします。

f:id:m_kbou:20190513085932p:plain

(例4)A2セルに60、B2セルに男を入力し、<合否判定>ボタンをクリックします。

f:id:m_kbou:20190513085951p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

分岐する条件が複数の場合の記述方法についての説明は以上です。

 

論理演算子を用いた分岐条件の記述方法

論理演算子を用いた分岐条件について、以下画面を元に説明していきます。

[画面]:

f:id:m_kbou:20190513085844p:plain

※<合否判定>ボタンには、以下の各々のプログラミング例が登録されています。

■Andを使用した場合

[プログラミング例]:

Sub 合否判定()

  If Range("A2") >= 80 And Range("B2") = "男" Then
    MsgBox "合格です!"
  Else
    MsgBox "不合格です!"
  End If

End Sub

内容は、
・A2セルが80以上でB2セルが男の場合、「合格です!」を
・上記以外の場合、「不合格です!」を
MsgBoxで表示するとなります。

f:id:m_kbou:20210205095510p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

(例1)A2セルに90、B2セルに男を入力し、<合否判定>ボタンをクリックします。

f:id:m_kbou:20190513102536p:plain

(例2)A2セルに60、B2セルに男を入力し、<合否判定>ボタンをクリックします。

f:id:m_kbou:20190513102600p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

Andを使用した場合の説明については以上です。

■Orを使用した場合

[プログラミング例]:

Sub 合否判定()

  If Range("A2") >= 80 Or Range("B2") = "男" Then
    MsgBox "合格です!"
  Else
    MsgBox "不合格です!"
  End If

End Sub

内容は、
・A2セルが80以上又はB2セルが男の場合、「合格です!」を
・上記以外の場合、「不合格です!」を
MsgBoxで表示するとなります。

f:id:m_kbou:20210205100148p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

(例1)A2セルに90、B2セルに女を入力し、<合否判定>ボタンをクリックします。

f:id:m_kbou:20190513103157p:plain

(例2)A2セルに60、B2セルに女を入力し、<合否判定>ボタンをクリックします。

 f:id:m_kbou:20190513103215p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

Orを使用した場合の説明については以上です。

■Notを使用した場合

[プログラミング例]:

Sub 合否判定()

  If Not Range("B2") = "男" Then
    MsgBox "合格です!"
  Else
    MsgBox "不合格です!"
  End If

End Sub

内容は、
・B2セルが男で無い場合、「合格です!」を
・上記以外の場合、「不合格です!」を
MsgBoxで表示するとなります。

f:id:m_kbou:20210205101327p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

(例1)B2セルに女を入力し、<合否判定>ボタンをクリックします。

f:id:m_kbou:20190513103101p:plain

(例2)B2セルに男を入力し、<合否判定>ボタンをクリックします。

f:id:m_kbou:20190513103117p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

Notを使用した場合の説明については以上です。

 

プログラミング(サンプル)

プログラミング事例を紹介します。

www.osiete-excelvba.work

www.osiete-excelvba.work

www.osiete-excelvba.work

www.osiete-excelvba.work

www.osiete-excelvba.work

www.osiete-excelvba.work

www.osiete-excelvba.work

www.osiete-excelvba.work

www.osiete-excelvba.work

www.osiete-excelvba.work

www.osiete-excelvba.work

www.osiete-excelvba.work

www.osiete-excelvba.work

www.osiete-excelvba.work

 

おわりに

IF文はプログラミングをする上で必ず使用する構文となります。適材適所で使用してもらえれば、より読みやすく・綺麗なコーディングが書けるようになります。是非活用してみて下さい。