IF文 VBAで自動化 VBAテクニック集 VBA一覧 文法・構文

【VBA】If文の条件を変数に入れて可読性を向上させる方法

If文を使用する際、複数の条件を入れるとコードが複雑になり、可読性が低下することがあります。 長い条件式が実行される場合や、複数の条件が絡む場合は管理が難しくなります。

If文の条件を変数に格納することでコードの可読性を向上させる方法と実際の活用例を紹介します。

If文の条件を変数に格納する基本的な考え方

複雑な条件式をそのままIf文に含めるのではなく、事前に変数に格納します。コードが読みやすくなり、条件式の意味も明確にできます。

【基本構文】

Dim 条件1 As Boolean
Dim 条件2 As Boolean

条件1 = (条件式1)
条件2 = (条件式2)

If 条件1 And 条件2 Then

' 条件を満たす場合の処理

Else

' 条件を満たさない場合の処理

End If

メリット

  1. 可読性の向上
    条件が短くなり、何を確認しているのかが明確になります。
  2. 再利用性
    同じ条件を複数回使用する場合には、条件を再度記載する必要がありません。
  3. デバッグが簡単
    条件ごとに変数を随時、各条件の値をデバッグ中に確認できます。

基本的: 数値の範囲チェック

数値が特定の範囲内にあるかどうかを確認するコードです。

【VBA】条件に合うデータを抽出:For文・IF文

Sub RangeCheckExample()

Dim score As Integer
Dim isWithinRange As Boolean

score = 75

' 条件を変数に格納
isWithinRange = (score >= 60 And score <= 90)

If isWithinRange Then

MsgBox "スコアは範囲内です。"

Else

MsgBox "スコアは範囲外です。"

End If

End Sub

ポイント

  • isWithinRangeという変数名に条件を折り込むことで、条件の意味が明確になります。
  • If文が短くなり、読みやすくなります。

複数の条件を扱う場合

複数の条件を組み合わせてチェックする場合でも、変数を使用することでコードを整理できます。

【VBA】If文でAND条件を使用する方法

Sub MultipleConditionsExample()

Dim age As Integer
Dim income As Double
Dim isEligible As Boolean

age = 30
income = 40000

' 条件を変数に格納
Dim isAgeValid As Boolean
Dim isIncomeValid As Boolean

isAgeValid = (age >= 20 And age <= 40)
isIncomeValid = (income >= 30000 And income <= 60000)

isEligible = (isAgeValid And isIncomeValid)

If isEligible Then

MsgBox "条件を満たしています。"

Else

MsgBox "条件を満たしていません。"

End If

End Sub

ポイント

  • 条件ごとに変数を選択することで、何をチェックしているのかがすぐにわかります。
  • 再利用性が向上し、条件の追加や変更が簡単になります。

ワークシートのデータチェック

セルの値が特定の条件を満たすかどうかをチェックします。

Sub WorksheetCheckExample()

Dim ws As Worksheet
Dim cell As Range
Dim isEmpty As Boolean
Dim isNumeric As Boolean
Dim isValid As Boolean

Set ws = ThisWorkbook.Worksheets("Sheet1")

For Each cell In ws.Range("A1:A10")

' 条件を変数に格納
isEmpty = (cell.Value = "")
isNumeric = IsNumeric(cell.Value)

' 両方の条件を組み合わせる
isValid = (Not isEmpty And isNumeric)

If isValid Then

cell.Interior.Color = RGB(144, 238, 144) ' 緑色

Else

cell.Interior.Color = RGB(255, 182, 193) ' ピンク色

End If

Next cell

End Sub

ポイント

  • 各種条件を考慮して、データ検証の内容が明確になります。
  • データチェックのロジックが変更になった場合でも、変数を修正するだけで対応可能です。

条件を関数化する

条件を変数に折りたたむだけでなく、関数として定義することで、コードの再利用性をさらに向上させることができます。

【VBA】Exit Functionの基本~実用的な使い方

Function IsEligible(age As Integer, income As Double) As Boolean

Dim isAgeValid As Boolean
Dim isIncomeValid As Boolean

isAgeValid = (age >= 20 And age <= 40)
isIncomeValid = (income >= 30000 And income <= 60000)

IsEligible = (isAgeValid And isIncomeValid)

End Function

Sub CheckEligibility()

Dim age As Integer
Dim income As Double

age = 35
income = 45000

If IsEligible(age, income) Then

MsgBox "条件を満たしています。"

Else

MsgBox "条件を満たしていません。"

End If

End Sub

 

ポイント

  • 条件式を関数にすることで、条件を複数の場所で簡単に再利用できます。
  • コード全体がシンプルかつ直感的になります。

まとめ

条件を変数に入れることで、以下のメリットがあります。

  1. コードが読みやすくなる: 条件の意味を明確にし、コードを最小限にできます。
  2. 条件の再利用が簡単: 条件式を一度定義すれば、複数回使用できます。
  3. メンテナンス性が向上: 条件を変更する際、該当箇所のみを修正が最小限にできます。

特に複雑なロジックを扱う場合や、チームでコードを共有するために、この方法を取り入れることで、保守性や効率が大幅に向上します。

-IF文, VBAで自動化, VBAテクニック集, VBA一覧, 文法・構文