Excel VBA Ifステートメントで条件に応じて異なる処理|種類と使い方

 

Excel VBAの「Ifステートメント」は、条件に応じて異なる処理を行うためのプログラムの制御を作成します。単純なIfやIf...Elseなど、どんな種類の使い方があるか、サンプルコードをもとに具体的に解説します。

 

Ifステートメントの種類

・単純なIfステートメント
条件がTrueの場合に実行されるコードを指定します。

・ If...Elseステートメント
条件がTrueの場合とそれ以外の場合の両方に対して実行するコードを指定します。

※If...ElseIf...Elseステートメント: 複数の条件をチェックし、条件に合致する処理を実行する方法もありますが、問題集範囲に含まれていないので割愛します。

Ifステートメントの使い方

’単純なIfステートメントの例:
     If 条件 Then
         実行するコード
     End If
 
’If...Elseステートメントの例:
     If 条件 Then
         Trueの場合のコード
     Else
         Falseの場合のコード
     End If

 

Dim i As Integer
For i = 1 To 5   ' 1から5までの範囲で繰り返す例
    ' ここに繰り返し処理したいコードを記述する
    Debug.Print "Iteration " & i
Next i

Ifステートメントは、特定の条件が成立するかどうかに基づいてプログラムを制御するのに役立ちます。条件に応じて、異なる操作を実行したり、特定のコードブロックをスキップしたりできます。

演算子を使ったIfステートメント
' = 演算子を使った例
Dim number As Integer
number = 10
If number = 10 Then
    MsgBox "number は 10 です"
End If

' <> 演算子を使った例
Dim value As String
value = "Hello"
If value <> "World" Then
    MsgBox "value は World ではありません"
End If

' >、< 演算子を使った例
Dim x As Integer
x = 20
If x > 10 Then
    MsgBox "x は 10 より大きいです"
End If
If x < 30 Then
    MsgBox "x は 30 より小さいです"
End If

' And 演算子を使った例
Dim y As Integer
y = 25
If x > 10 And y < 30 Then
    MsgBox "x は 10 より大きく、かつ y は 30 より小さいです"
End If

' Or 演算子を使った例
Dim z As Integer
z = 5
If z < 10 Or x > 30 Then
    MsgBox "z は 10 より小さい、もしくは x は 30 より大きいです"
End If

それぞれの条件演算子を使って、異なる条件をチェックし、条件が成立する場合にメッセージボックスを表示する例です。

 

記憶定着問題集

操作方法:1.●●●をクリック(スマホはタップ)で答え表示。2.答えをクリック(スマホはタップ)で●●●表示。1⇔2を繰り返すことで、記憶を定着できます。

「Ifステートメント」は、●●●に応じて異なる処理を行うためのプログラムの制御を作成

・単純なIfステートメント
条件が●●●の場合に実行されるコードを指定します。

If 条件 ●●●

実行するコード

End ●●●

・ If...Elseステートメント
条件が●●●の場合と●●●の場合の両方に対して実行するコードを指定します。

If 条件 ●●●

Trueの場合のコード

●●●

Falseの場合のコード

●●● If

※以下、演算子は見やするため全角にしています。(実際は半角記述になります)

Dim number As Integer
number = 10
If number ●●● 10 Then
MsgBox "number は 10 です"
End If

Dim value As String
value = "Hello"
If value ●●● "World" Then
MsgBox "value は World ではありません"
End If

Dim x As Integer
x = 20
If x ●●● 10 Then
MsgBox "x は 10 より大きいです"
End If

If x ●●● 30 Then
MsgBox "x は 30 より小さいです"
End If

Dim y As Integer
y = 25
If x ●●● 10 ●●● y ●●● 30 Then
MsgBox "x は 10 より大きく、かつ y は 30 より小さいです"
End If

Dim z As Integer
z = 5
If z ●●● 10 ●●● x ●●● 30 Then
MsgBox "z は 10 より小さい、もしくは x は 30 より大きいです"
End If

 

Excel VBAのスキルを身につけて、仕事の効率化に貢献しませんか?

当サイトでは、Excel VBAエキスパート認定資格取得に向けた情報を提供しています。興味がある方は、ぜひ以下の問題集からチャレンジしてみてください。

 

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。