教えて!ExcelVBA!

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

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

f:id:m_kbou:20200417210805p:plain

Select Case文は、複数の条件により処理を分岐させたい場合に使用します。条件分岐にはIF文もありますが、Select Case文との使い分けとして、IF文は分岐の数が少ない場合に使用し、Select Case文は分岐が多い場合に使うと理解して下さい。IF文で記述すると読みずらい構文も、Select Case文にするとスッキリ読みやすくなります。このSelect Case文の使い方について紹介します。

 

 

構文

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

Select Case [変数]
  Case [条件式①]
    [処理①]
  Case [条件式②]
    [処理②]
  Case [条件式③]
    [処理③]
  Case Else
    [上記以外の処理]
End Select

[説明]:

複数の条件で処理を分岐する場合に使用します。複数条件での処理の分岐とは「もし◯◯なら△△を行い、☆☆なら◎◎を行い、それ以外ならば◇◇を行う」と言った処理のことを指します。

[変数] 判定条件を記述します。
[条件式①] 1つ目の分岐条件を記述します。
[処理①] [条件式①]に一致した場合に実行する処理を記述します。
[条件式②] 2つ目の分岐条件を記述します。
[処理②] [条件式②]に一致した場合に実行する処理を記述します。
[条件式③] 3つ目の分岐条件を記述します。
[処理③] [条件式③]に一致した場合に実行する処理を記述します。
[上記以外の処理] 上記条件に不一致の場合に実行する処理を記述します。

 

使い方

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

基本的な使い方

基本的な使い方について、以下画面を元に説明していきます。

[画面]:

f:id:m_kbou:20190514113554p:plain

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

[プログラミング例]:

Sub サンプル()

  Select Case Range("A2")
    Case 1
      MsgBox "1番を入力しました!"
    Case 2
      MsgBox "2番を入力しました!"
    Case 3
      MsgBox "3番を入力しました!"
    Case Else
      MsgBox "入力番号が間違っています!"
  End Select

End Sub

内容は、
・A2セルに1が入力された場合、「1番を入力しました!」を
・A2セルに2が入力された場合、「2番を入力しました!」を
・A2セルに3が入力された場合、「3番を入力しました!」を
・上記以外の場合、「入力番号が間違っています!」を
MsgBoxで表示して下さいとなります。

f:id:m_kbou:20210205110120p:plain

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

[実行例]:

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

f:id:m_kbou:20190514113621p:plain 

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

f:id:m_kbou:20190514113639p:plain

[サンプル]:

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

drive.google.com

基本的な使い方についての説明は以上です。

 

Orで複数条件を指定する使い方

Orで複数条件を指定する方法について、以下画面を元に説明していきます。

[画面]:

f:id:m_kbou:20190514113701p:plain

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

[プログラミング例]:

Sub サンプル()

  Select Case Range("A2")
    Case 3, 4, 5
      MsgBox "春です。"
    Case 6, 7, 8
      MsgBox "夏です。"
    Case 9, 10, 11
      MsgBox "秋です。"
    Case 12, 1, 2
      MsgBox "冬です。"
    Case Else
      MsgBox "月を入力して下さい!"
  End Select

End Sub

内容は、
・3月、4月、5月の場合、「春です。」を 
・6月、7月、8月の場合、「夏です。」を 
・9月、10月、11月の場合、「秋です。」を
・12月、1月、2月の場合、「冬です。」を 
・上記以外の場合、「月を入力して下さい!」を
MsgBoxで表示して下さいとなります。
※Orでの複数条件を指定する場合は、「,」(カンマ)で区切ります。

f:id:m_kbou:20210205110627p:plain

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

[実行例]:

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

f:id:m_kbou:20190514113723p:plain

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

f:id:m_kbou:20190514113740p:plain

[サンプル]:

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

drive.google.com

Orで複数条件を指定する使い方についての説明は以上です。

 

Toで範囲を指定する使い方

Toで範囲を指定する方法について、以下画面を元に説明していきます。

[画面]:

f:id:m_kbou:20190514113804p:plain

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

[プログラミング例]:

Sub サンプル()

  Select Case Range("A2")
    Case 1 To 3
      MsgBox "入力した数字は1~3の範囲内です。"
    Case 4 To 7
      MsgBox "入力した数字は4~7の範囲内です。"
    Case 8 To 10
      MsgBox "入力した数字は8~10の範囲内です。"
    Case Else
      MsgBox "入力した数字は1~10以外です。"
  End Select

End Sub

内容は、
・1~3の数字が入力された場合、「入力した数字は1~3の範囲内です。」を
・4~7の数字が入力された場合、「入力した数字は4~7の範囲内です。」を 
・8~10の数字が入力された場合、「入力した数字は8~10の範囲内です。」を
・上記以外の場合、「入力した数字は1~10以外です。」を 
MsgBoxで表示して下さいとなります。

f:id:m_kbou:20210205111111p:plain

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

[実行例]:

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

f:id:m_kbou:20190514113845p:plain

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

f:id:m_kbou:20190514113911p:plain

[サンプル]:

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

drive.google.com

Toで範囲を指定する使い方についての説明は以上です。

 

Isで比較条件を指定する使い方

Isで比較条件を指定する方法について、以下画面を元に説明していきます。
また、比較条件には比較演算子を使用しますので、一覧を載せておきます。

比較演算子 演算名 使用例 結果
= 等しい 1=2 ×(不一致)
<> 等しくない 1<>2 ○(一致)
> 大きい 1>2 ×(不一致)
< 小さい 1<2 ○(一致)
>= 以上 1>=2 ×(不一致)
<= 以下 1<=2 ○(一致)

[画面]:

f:id:m_kbou:20190514113931p:plain

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

[プログラミング例]:

Sub サンプル()

  Select Case Range("A2")
    Case Is < 30
      MsgBox "赤点です!"
    Case Is = 30
      MsgBox "赤点ギリギリです!"
    Case Is < 70
      MsgBox "もう少し努力が必要です!"
    Case Else
      MsgBox "優秀です!"
  End Select

End Sub

内容は、
・30未満の数字が入力された場合、「赤点です!」を
・30の数字が入力された場合、「赤点ギリギリです!」を
・31以上70未満の数字が入力された場合、「もう少し努力が必要です!」を
・上記以外の場合、「優秀です!」を
MsgBoxで表示して下さいとなります。

f:id:m_kbou:20210205111749p:plain

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

[実行例]:

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

f:id:m_kbou:20190514113950p:plain

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

f:id:m_kbou:20190514114006p:plain

[サンプル]:

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

drive.google.com

Isで比較条件を指定する使い方についての説明は以上です。

 

おわりに

上記でも説明しましたが、Select文は分岐が多い場合に使用するとコーディングが簡潔でスッキリとします。分岐が少ない場合はIF文を使用し、分岐が多い場合にはSelect文を使用するようにして下さい。