ExcelのVBAで、ある条件をによって、処理を分岐させるのが"IF文(ステートメント)"です。
「もし※※だったら、処理A、そうじゃなかったら処理B」って言うやつです。
*下の方でサンプルExcelファイルがダウンロードできます。
If 条件式 Then(条件を満たした時 / 真 true)処理A
Else(条件を満たさない時 / 偽 false)処理B
End If
“Else 処理B” は省略することができます。
すると条件を満たさない時はEnd If でIfステートメントが終了します。
すると条件を満たさない時はEnd If でIfステートメントが終了します。
条件式で使用する演算子の種類
比較演算子
2つ値や式を比較して、結果を真(true)偽(false)で返します
2つ値や式を比較して、結果を真(true)偽(false)で返します
演算子 | 意味 |
= | 等しい |
<> | 等しくない |
> | より大きい |
>= | 以上 |
< | より小さい |
<= | 以下 |
論理演算子
2つの条件式を組み合わせた条件式を作り結果を真(true)偽(false)で返します
演算子 | 意味 | 例 | 結果 |
And | 理論積 (且つ) | 真(true)And 真(true) | 真(true) |
真(true)And 偽(false) | 偽(false) | ||
偽(false)And 真(true) | 偽(false) | ||
偽(false)And 偽(false) | 偽(false) | ||
Or | 理論和 (または) | 真(true)Or 真(true) | 真(true) |
真(true)Or 偽(false) | 真(true) | ||
偽(false)Or 真(true) | 真(true) | ||
偽(false)Or 偽(false) | 偽(false) | ||
Xor | 排他理論和 (どちらか1つだけ真のとき真) | 真(true)Xor 真(true) | 偽(false) |
真(true)Xor 偽(false) | 真(true) | ||
偽(false)Xor 真(true) | 真(true) | ||
偽(false)Xor 偽(false) | 偽(false) | ||
Not | 理論否定 | Not 真(true) | 偽(false) |
Not 偽(false) | 真(true) |
使用例
1)セルの値が30以上だったら隣のセルに"合格"、じゃなかったら"追試"と表示する
Sub macro1()
'もしセルA2が30以下なら
If Cells(2, 1) >= 30 Then
'もしセルA2が30以下なら
If Cells(2, 1) >= 30 Then
'セルB2に“合格”と表示
Cells(2, 2) = "合格"
'そうでなかったら、
Else
'セルB2に“追試”と表示
Cells(2, 2) = "追試"
Cells(2, 2) = "合格"
'そうでなかったら、
Else
'セルB2に“追試”と表示
Cells(2, 2) = "追試"
End If
End Sub
2)Elseの省略、セルの値が30以上だったら隣のセルに"合格"と表示する
3)論理演算子"And"の使用例
算数のセルの値が30以上、且つ、国語のセルの値が30以上、だったら、隣のセルに"合格"と表示する
算数のセルの値が30以上、且つ、国語のセルの値が30以上、だったら、隣のセルに"合格"と表示する
Sub macro3()
'もしセルA5が30以上 かつ セルB5が30以上 ならば
If Cells(5, 1) >= 30 And Cells(5, 2) >= 30 Then
If Cells(5, 1) >= 30 And Cells(5, 2) >= 30 Then
'セルC5に合格と表示
Cells(5, 3) = "合格"
Cells(5, 3) = "合格"
End If
End Sub
End Sub
サンプルExcelファイル:if文.zip
最近のマキタって電動工具だけにとどまらず、充電池をベースにした様々な機器のバリエーションを増やしてて面白いですよ。
ラベル:if