4、VBAによるマクロの作成(基礎編)

4−5、処理の分岐


処理の分岐

ある条件によってその先の処理を変えたい場合は処理の分岐命令を使います。セルの値やユーザーからの入力が条件にあうかどうかで、処理を分岐します。

例5)

※「Example1」〜「Example4」の続きです。


A2とA3それぞれに入力されている名前が「山田」かどうか判定し、その結果をメッセージとして表示する

Sub Example5()
  Worksheets("Sheet1").Select
  Judge1 = Range("A2").Value
  
If Judge1 = "山田" Then
    MsgBox "A2は山田です。"
  
Else
    MsgBox "A2は山田ではありません。"
  
End If
  Judge2 = Range("A3").Value
  
If Judge2 = "山田" Then
    MsgBox "A3は山田です。"
  
Else
    MsgBox "A3は山田ではありません。"
  
End If
End Sub

記述後、「マクロの実行」から「Example5」を実行してください。

【このコードの解説】

Judge1 = Range("A2").Value

If Judge1 = "山田" Then
  
MsgBox "A2は山田です。"
Else
  
MsgBox "A2は山田ではありません。"
End If

※この命令を日本語に訳すとすれば以下のようになります。

もし「Judge1」の値が「山田」だったら
  
「A2は山田です。」という
   メッセージを表示
そうでなければ
  
「A2は山田ではありません。」という
   メッセージを表示
分岐命令終了

+α講座

上の例は条件の結果が真の場合偽の場合ともに何らかの処理をさせるものでしたが、真の場合だけ処理を実行し、偽の場合は何もしないという記述のしかたもできます。

If Judge1 = "山田" Then
  MsgBox "A2は山田です。"
End If

このように偽の場合は何もしないわけですので、「Else」とその後に続く偽の場合の処理を省略すればいいだけです。

比較演算子

条件となる比較式に用いる比較演算子の一覧です。

演算子

意味

等しい
If A=B Then もし AとBが等しい なら

<>

等しくない
If A<>B Then もし AとBが等しくない なら

>

より大きい
If A>B Then もし AがBより大きい なら

>=

以上
If A>=B Then もし AがB以上 なら

<

より小さい
If A<B Then もし AがBより小さい なら

<=

以下
If A<=B Then もし AがB以下 なら