ExcelVBAの条件分岐 「if文、elseif文、else文」を使った効果的な処理の振り分け方法を分かりやすく解説します。
ExcelVBAで複数の条件を使った処理って、どうやるの?
if、elseif、else文を利用するのが一般的です。詳しく解説しましょう。
if文を使った条件分岐の基本
プログラム内で特定の条件に基づいて処理を分岐させるために、Excel VBAではif文を使用します。if文は、指定した条件が真の場合に特定の処理を実行する制御構文です。ここでは、if文の基本的な構造と使い方について詳しく説明します。
if文の構造
if文は以下のような構造を持ちます。
If 条件 Then
' 条件が真の場合に実行される処理
End If
条件部分には、評価したい条件式を記述します。もし条件が真(True)であれば、その直後の処理が実行されます。条件が偽(False)の場合は、if文内の処理はスキップされます。
例: 数値の判定
以下の例では、入力された数値が正かどうかを判定しています。
Sub CheckPositiveNumber()
Dim num As Integer
num = InputBox("整数を入力してください")
If num > 0 Then
MsgBox "入力された数値は正です。"
End If
End Sub
上記のプログラムでは、ユーザーに整数を入力してもらい、その数値が正の場合にメッセージボックスが表示されます。
if-else文の利用
単純なif文だけでなく、条件が偽の場合に別の処理を行いたい場合には、if-else文を使用します。
If 条件 Then
' 条件が真の場合に実行される処理
Else
' 条件が偽の場合に実行される処理
End If
例: 偶数・奇数の判定
以下の例では、入力された数値が偶数か奇数かを判定しています。
Sub CheckEvenOdd()
Dim num As Integer
num = InputBox("整数を入力してください")
If num Mod 2 = 0 Then
MsgBox "入力された数値は偶数です。"
Else
MsgBox "入力された数値は奇数です。"
End If
End Sub
ここでは、Mod
演算子を使用して、数値を2で割った余りが0かどうかを判定し、偶数か奇数かを表示しています。
elseif文を活用した条件分岐
ExcelVBAでは、複数の条件を順番に評価し、最初に真となった条件の処理を実行するためにelseif文を活用することができます。elseif文を使用することで、より複雑な条件分岐を効果的に行うことができます。
以下では、elseif文の基本的な構造と使い方について詳しく説明します。
elseif文の構造
elseif文はif文の後に続けて使用し、追加の条件を評価します。最初のif文が偽の場合に、次にelseif文の条件を評価し、真となる条件があればその処理を実行します。
If 条件1 Then
' 条件1が真の場合に実行される処理
ElseIf 条件2 Then
' 条件2が真の場合に実行される処理
ElseIf 条件3 Then
' 条件3が真の場合に実行される処理
Else
' すべての条件が偽の場合に実行される処理
End If
例: 成績評価
以下の例では、与えられた点数に応じて成績を判定しています。
Sub EvaluateGrade()
Dim score As Integer
score = InputBox("点数を入力してください")
If score >= 90 Then
MsgBox "成績はAです。"
ElseIf score >= 80 Then
MsgBox "成績はBです。"
ElseIf score >= 70 Then
MsgBox "成績はCです。"
ElseIf score >= 60 Then
MsgBox "成績はDです。"
Else
MsgBox "成績はFです。"
End If
End Sub
上記のプログラムでは、点数に応じて異なる成績を表示する処理が行われています。最初に条件が評価され、最初に真となった条件の処理が実行されます。
else文を組み合わせた処理の最適化
ExcelVBAでは、条件分岐の際に複数の条件を組み合わせて処理を最適化することができます。else文を使って、すべての条件が偽の場合に実行する処理を組み込むことで、プログラムの動作をより効率的に制御できます。以下では、else文を組み合わせた処理の最適化について詳しく説明します。
else文を組み合わせた条件分岐の構造
複数の条件を評価し、条件ごとに異なる処理を行う場合には、次のような構造を使用します。
If 条件1 Then
' 条件1が真の場合に実行される処理
ElseIf 条件2 Then
' 条件2が真の場合に実行される処理
ElseIf 条件3 Then
' 条件3が真の場合に実行される処理
Else
' すべての条件が偽の場合に実行される処理
End If
else文は、前のif文やelseif文の条件がすべて偽の場合に実行されるブロックです。
例: 配送料金の計算
以下の例では、商品の価格に応じて配送料金を計算しています。
Sub CalculateShippingCost()
Dim price As Double
Dim shippingCost As Double
price = InputBox("商品の価格を入力してください")
If price >= 1000 Then
shippingCost = 0
ElseIf price >= 500 Then
shippingCost = 300
ElseIf price >= 100 Then
shippingCost = 500
Else
shippingCost = 1000
End If
MsgBox "配送料金は " & shippingCost & " 円です。"
End Sub
このプログラムでは、商品の価格に応じて適切な配送料金を計算しています。各条件を評価し、最初に真となった条件の処理を実行するため、価格に応じた適切な送料が計算されます。
リスキリングでキャリアアップしてみませんか?
リスキリング(学び直し)は、経済産業省が推奨しており、
今だけ、最大70%のキャッシュバックを受けることができます。
最大70%の給付金が出るおすすめのプログラミングスクール!
国策で予算が決められているため申し込みが多い場合は早期に終了する可能性があります!
興味のある方はすぐに確認しましょう。
まとめ
ExcelVBAの条件分岐 「if文、elseif文、else文」を使った効果的な処理の振り分け方法を解説しました。
- 条件分岐はプログラム内で特定の条件に基づいて処理を振り分けるための重要なテクニックである。
- if文を使用することで、特定の条件が真の場合に処理を実行できる。
- elseif文を活用することで、複数の条件を順番に評価し、最初に真となった条件の処理を実行できる。
- else文を組み合わせることで、すべての条件が偽の場合のデフォルト処理を設定できる。
プログラム内で複数の条件に応じて処理を振り分ける方法が、具体的なコード例とともに分かりやすく説明されていて助かりました。
条件分岐はプログラミングの基本中の基本です。適切な条件分岐を行うことで、複雑な処理をシンプルに記述できます。
具体的なケースに合わせてif文、elseif文、else文をうまく活用し、コードの効率化と可読性向上を意識してください。
コメント