前回は条件分岐についてということで、Ifステートメントをご紹介させてもらいました。今回は、条件分岐の違う書き方の「Select Caseステートメント」を紹介していきたいと思います

Select Caseステートメントについて

Select Caseステートメントは下記のような構文となります。

Select Case構文

Select Case 変数
  Case 条件式1
    処理1
  Case 条件式2
    処理2
  Case Else
    上記以外の場合の処理
End Select

今回もサンプルを使って「Select Caseステートメント」の使い方確認していきます

サンプルとして(“B3”)のセルの重要度の数字が、下の表の重要度の数字と一致した場合(“A3”)のセルの色を変更するようにします。

Select Caseステートメントは、
Select Case」の後に条件分けしたい対象の変数
「Case」の後に 各々の条件式
箇条書きに記述していくような構文となっております。

Sub test()  ‘testプロシージャ開始

Dim num As Long ‘整数Long型のnum変数宣言
num=Range(“B3”).Value ‘変数numに【B3】のセルの値を代入

Select Case num ‘変数numに対する分岐スタート
   Case 1 ‘numが1の場合
   MsgBox”セルの色は変わりません” ‘メッセージボックス表示
   Case 2 ‘num1が2の場合
    Range(“A3”).Interior.Color=RGB(0,176,240) ‘【A3】のセルの塗りつぶしを水色にする
  Case 3
   Range(“A3”).Interior.Color=RGB(146,208,80) ‘【A3】のセルの塗りつぶしを黄緑にする
  Case 4
   Range(“A3”).Interior.Color=RGB(255,255,0) ‘【A3】のセルの塗りつぶしを黄色にする
  Case Else ‘それ以外の場合
   MsgBox”数が一致しません” ‘メッセージボックス表示

End Select ‘Select Caseステートメント終わり

End Sub

IfとSelect Caseの違い / 使い分け方

Ifステートメントと、Select Caseステートメントついて基本の使い方として紹介させていただきました。
「同じ機能なら1つ覚えればいいの?」「実際どっちを使えばいいの?」と気になると思いますので、
どう使い分けたらいいのかを参考にお伝えします。

  • 複雑な条件式の時に向いている
  • 複数条件の分岐が出来る(AかつBの場合)
  • 直観的にコードを書きやすい
  • シンプルな記述が出来る(読みやすい)
  • 条件分けが多い時に向いている(Aの場合、Bの場合、Cの場合、Dの場合…)
  • 複数条件の分岐が出来ない(AかつB書き方なし)

「この場合はかならずIfステートメントを使うべき!」等強制はありません。
Ifの時は条件がちょいと複雑な時、単純な場合はSelect Caseで何となく使い分けしててみてください


演算子の使い方

プログラム内での足し算や掛け算、比較の際の記述の仕方を説明していきます。

算術演算子は、足し算や引き算等数値の計算を行う際に使用します。

説明演算子結果
足し算 +2+35
引き算9-27
掛け算2*24
割り算/9/42.25
割り算の商\9\42
割り算の余りMod9Mod41
べき乗^2^38

使用例

こんな感じで利用しますという事で紹介していきます

  • Range(“C1”).Value = Range(“A1”).Value + Range(“B2”).Value
  • MsgBox 10 – 2
  • num = 5 * 2 + 2
  • x = Range(“A1”).Value / 2

比較演算子は、名前の通り値と値を比較して「AよりBが大きい」「BはA以下」等の計算の時に使用します。
比較演算子の結果は数字の値ではなく、合っているか(True)、間違っているか(False)を返します。
これはBoolean(ブール型)のデータ型になります。

説明演算子結果
等しい3=3True
等しくない<>9<>9False
大きい1>5False
小さい9<10True
以上>=3>=5False
以下<=3<=5True

使用例

  • if Range(“C1”).Value < Range(“A1”).Value then
  • num1 >= num2
  • num1 <> 5
  • MsgBox num1 > 5

論理演算子は、「AかつB」や「AまたはB」等複数条件を繋ぐ時に利用するものです。これも結果はブール型でTrueかFalseで値が返ってきます。注意点としては、Select Caseで使えないので論理演算子を使用したい時はIfステートメントを使ってください。

説明演算子結果
論理積And10>5 And 3<4True
論理和Or10>5 Or 3>4True
論理否NotNot 2>5True

使用例

  • If Range(“A1”).Value = Range(“A2”).Value And Range(“A3”).Value Then
  • If Not num =4 Then
まとめ

今回はSelect Caseステートメントの使い方と、IfとSelect Caseステートメントの使い分け、演算子について解説させていただきました 最後まで読んでいただきありがとうございます