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」を実行してください。
【このコードの解説】
- A2の値を取得し、変数「Judge1」に格納します。
Judge1 = Range("A2").Value
- 分岐命令には「If 〜 Then ・・・」を使います。
Ifの後に条件を、Thenの後に条件を満たす場合(真)の処理を、Elseの後に条件を満たさない場合(偽)の処理を記入します。If Judge1 = "山田" Then
MsgBox "A2は山田です。"
Else
MsgBox "A2は山田ではありません。"
End If※この命令を日本語に訳すとすれば以下のようになります。
もし、「Judge1」の値が「山田」だったら
「A2は山田です。」という
メッセージを表示
そうでなければ
「A2は山田ではありません。」という
メッセージを表示
分岐命令終了
- 条件は主に比較式で表わされます。その比較に用いる演算子にも数種類ありますので、下記の「比較演算子」の部分を参照して下さい。
- Ifで始まる処理の分岐命令の終わりを表わす「End If」は忘れずに記入するようにして下さい。
+α講座
上の例は条件の結果が真の場合、偽の場合ともに何らかの処理をさせるものでしたが、真の場合だけ処理を実行し、偽の場合は何もしないという記述のしかたもできます。
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以下 なら |