VBAのIF文とIIF文:初心者向けガイド

こんにちは!大阪市住之江区に拠点を置く会社『縁紡ぐ』の稲垣です。

当社は、Excel、ACCESS、RPAなどのシステム開発や既存ツールを使った業務効率化の提案、また、ITスキルアップのための教育に力を入れています。効率的なビジネス運営を目指している企業様、ITスキルの向上を図りたい企業や個人の方に、最適なご提案をさせていただきます。業務プロセスの改善とITスキルアップをサポートし、共に成長するパートナーでありたいと考えています。

VBAのIF文とIIF文:初心者向けガイド

VBA(Visual Basic for Applications)は、ExcelやAccessなどのMicrosoft Officeアプリケーションを自動化するための強力なツールです。この記事では、VBAの基本的な条件分岐であるIF文とIIF文について解説します。初心者の方でも理解しやすいように、具体例を交えながら説明します。

目次

IF文とは

IF文の基本

IF文は、特定の条件が真である場合に実行されるコードを指定するための文です。以下のように書きます。

If 条件 Then
    ' 条件が真の場合の処理
End If

複数の条件で処理を分岐する

IF文は、ElseElseIfを使って複数の条件をチェックすることができます。以下にその構文を示します。

If 条件1 Then
    ' 条件1が真の場合の処理
ElseIf 条件2 Then
    ' 条件2が真の場合の処理
Else
    ' どちらの条件も偽の場合の処理
End If

例えば、点数によって処理を分岐したい時は、以下のようになります。

Dim score As Integer
score = 75

If score >= 90 Then
    MsgBox "優"
ElseIf score >= 75 Then
    MsgBox "良"
ElseIf score >= 60 Then
    MsgBox "可"
Else
    MsgBox "不合格"
End If

この例では、scoreの値に応じて異なるメッセージが表示されます。

なるべくネストしないようにする

Dim score As Integer
score = 75

If score >= 90 Then
    MsgBox "優"
Else
    If score >= 75 Then
        MsgBox "良"
    Else
        If score >= 60 Then
            MsgBox "可"
        Else
            MsgBox "不合格"
        End If
    End If
End If

なるべくネストにしない方がコードの可読性はよくなります。

ネストのネストなんかは、作っているときにはすぐに理解できますが、1週間後のあなたにとっては読み解くだけで一苦労します💦

チェックなどで処理を中止する場合はElseIfを使わない方が分かりやすい

例えば、入力チェックなどを行う場合です。

Dim userInput As String
userInput = InputBox("数値を入力してください:")

' 空入力のチェック
If userInput = "" Then
    MsgBox "入力が必要です。"
    Exit Sub
End If

' 数値チェック
If Not IsNumeric(userInput) Then
    MsgBox "数値を入力してください。"
    Exit Sub
End If

' 範囲チェック
If CInt(userInput) < 0 Or CInt(userInput) > 100 Then
    MsgBox "数値は0から100の範囲で入力してください。"
    Exit Sub
End If

MsgBox "入力された数値は " & userInput & " です。"

ElseIfでたくさん書くことは、可読性を落とすことになるから気を付けてくださいね

IIF文とは

IIF文

IIF文は、簡潔に条件分岐を記述できる文です。以下のように書きます。

結果 = IIF(条件, 真の値, 偽の値)
Dim score As Integer
score = InputBox("成績を入力してください:")

Dim result As String
result = IIF(score >= 60, "合格", "不合格")

MsgBox "あなたの成績は " & result & " です。"

このコードでは、scoreの値に応じて合否を判定し、結果をメッセージボックスで表示します。

IIF文を使う際の注意点

IIF文は条件が真の場合と偽の場合の両方を評価します。これにより、意図しない副作用が生じることがあります。例えば、条件が真の場合にエラーを引き起こすような処理を行うと、偽の場合でも評価されてしまいます。

Dim x As Integer
Dim y As Integer
x = 0
y = 10

' ここでゼロ除算が発生する可能性があります
MsgBox IIf(x <> 0, y / x, "ゼロ除算エラー")

条件式で「x <> 0 」になっているので偽となるのですが、IIF文は、真のときの「y / x」の評価を実行してしまいます。ゼロで割り算しようとするため、”ゼロ除算エラー”とはならず、エラーとなります

IIF文を使うときは、注意が必要ですね。

初心者の方は、IF文をまず利用することをおススメします

まとめ

IF文とIIF文はVBAにおいて非常に重要な条件分岐の手段です。特に入力チェックにおいて、ElseIfを使わずに複数のIf文を用いることで、コードの可読性が向上し、メンテナンスしやすくなります。

条件分岐は、プログラミングの基本ですのでぜひ使えるようになってくださいね!

あわせて読みたい
VBAのSelect Caseの使い方を初心者にもわかりやすく解説 【はじめに】 VBA(Visual Basic for Applications)は、Excelなどのアプリケーションを自動化するための強力なツールです。特に、条件によって異なる処理を実行する際...
記事を書いた人

稲垣

  • Excel、ACCESSでのシステム開発が得意
  • ITスキルを共有し実践的に学びながら成長する人を見るのが幸せ
  • 自家焙煎するほどのコーヒー好き
  • 使用言語 VBA、Python、Javascript、Java、HTML、CSS etc.
  • 保有資格 Kintoneアソシエイト、日商簿記検定2級、マンション管理士、管理業務主任者、情報セキュリティマネジメント、ExcelVBA etc.
  • 業務フロー図の作成や業務時間分析を通して、効率化ポイントを探る人
  • お客様にとって本当に良いことかを第一に考える人
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次