本記事の内容
Excel VBAで値を比較して処理を分岐する方法をご紹介
→ if文を使って分岐
こんな方におすすめ
- ExcelでVBAマクロを作成してみたいが手順が分からない方
- VBAマクロで値による処理の分岐を実現したい方
- VBA初心者の方
if文とは?構文は?
if文とは、
条件を満たしたときに処理を分岐させるための構文
です。
構文は下記の通りです。
<一つの条件を満たした時のみ処理>
if 条件式 Then
処理内容
End if
<一つの条件を満たした時と満たしてない時で処理を振り分ける>
if 条件式 Then
処理内容1
Else
処理内容2
End if
<複数の条件で処理を振り分ける>
if 条件式1 Then
処理内容1
ElseIf 条件式2 Then
処理内容2
Else
処理内容3
End if
条件式一覧
条件式で使用できる記号(演算子)は下記の通りです。
演算子 | 説明 | 例 | 結果 |
< | より小さい | 3 < 2 | TRUE |
<= | 以下 | 3 <= 3 | TRUE |
> | より大きい | 8 > 7 | TRUE |
>= | 以上 | 8 >= 8 | TRUE |
= | 等しい | 8 = 8 | TRUE |
<> | 等しくない | 7 <> 8 | TRUE |
例1 : 値を比較して処理を分岐
値を比較して処理を分岐する処理は下記の通りとなります。
<ソースコード>
Sub sample()
'整数型の変数を定義
Dim num1 As Long
Dim num2 As Long
'比較する値を変数に代入
num1 = 1
num2 = 10
'num1(1)と5を比較
Debug.Print "num1(1)" & " < " & 5 & "の結果は"
If num1 < 5 Then
'1 < 5なのでこちらが処理される
Debug.Print "TRUE"
Else
Debug.Print "FALSE"
End If
'num2(10)と5を比較
Debug.Print "num2(10)" & " < " & 5 & "の結果は"
If num2 < 5 Then
Debug.Print "TRUE"
Else
'1 < 5なのでこちらが処理される
Debug.Print "FALSE"
End If
End Sub
<処理結果>

例2 : 複数の条件で処理を分岐
複数の条件で処理を分岐する処理は下記の通りとなります。
<ソースコード>
Sub sample()
'整数型の変数を定義
Dim num1 As Long
Dim num2 As Long
'比較する値を変数に代入
num1 = 1
num2 = 10
'num1(1)の値を比較
If num1 < 0 Then
Debug.Print "num1は0未満です"
ElseIf num1 < 5 Then
Debug.Print "num1は5未満です"
ElseIf num1 < 10 Then
Debug.Print "num1は10未満です"
Else
Debug.Print "num1は10以上です"
End If
'num2(10)の値を比較
If num2 < 0 Then
Debug.Print "num2は0未満です"
ElseIf num2 < 5 Then
Debug.Print "num2は5未満です"
ElseIf num2 < 10 Then
Debug.Print "num2は10未満です"
Else
Debug.Print "num2は10以上です"
End If
End Sub
<処理結果>

以上がif文で値を比較する方法となります。
ここまでご覧いただきありがとうございました。
初心者におすすめの書籍はこちら
VBAに詳しくなりたい方におすすめの書籍はこちら