MENU

【初心者向け】If関数だけじゃない!VBAでできる「条件分岐」の世界を体験しよう

この記事で解決できる3つの疑問

A子さん

ExcelのIF関数でやりたいこと、限界がある気がする…
VBAって難しそうだけど、条件分岐もできるの?
初心者でもわかるように教えてほしい!

結論:IF関数に限界を感じたら、VBAという選択肢を知っておこう

Excel関数だけでは表現しきれない複雑な処理も、VBAならシンプルなコードで実現できます。
「複数条件を一度にチェックしたい」「条件によって表示や動作を変えたい」そんなとき、VBAの If ~ Then ~ Else 文は非常に強力です。

目次

ExcelのIF関数、どこまで使える?

A子さん

「IF関数で“売上が100を超えたら〇〇、それ以下なら××”みたいな条件、使ってるけど…3つ以上の条件になるとカオスなんだよね…」

実際に以下のようなIF関数を組んだことがある方も多いのではないでしょうか?

=IF(A2>100, "優良", IF(A2>70, "普通", IF(A2>50, "注意", "危険")))

このように条件が3つ以上になると、ネスト(入れ子)が深くなって読みづらくなります。
一見動くものの、「修正が大変」「追加条件の挿入に弱い」などの悩みが生まれがちです。

これが、VBAへステップアップする1つのきっかけになります。

VBAでも「If」が使えるって本当?

先輩

「A子さん、実はExcelの中には、もっと自由に条件分岐が書ける“プログラム空間”がある。それがVBAなんだ。」

VBA(Visual Basic for Applications)では、Excelの関数と似た形で If ~ Then を使って処理を記述できます。
しかも、1つの条件に対して複数のアクションをまとめて行えるのが魅力です。

VBAの「If文」基本構文を見てみよう

Dim 点数 As Integer
点数 = 80

If 点数 >= 60 Then
    MsgBox "合格です!"
Else
    MsgBox "残念、不合格です。"
End If

ポイント:

  • If 条件 Then のあとに、条件が真(True)のときの処理を書きます。
  • Else を使えば、条件が偽(False)の場合の処理も可能です。
  • ElseIf を使うことで複数条件もスマートに記述可能。

4. Excel関数では難しい処理も、VBAなら簡単!

たとえば以下のようなことは、関数では実現が難しいですがVBAでは可能です。

やりたいこと関数VBA
条件でセルの色を変える
条件に応じて複数セルを一括処理
条件によりファイル出力やメッセージ表示
A子さん

「えっ、色も変えられるの?しかも条件によってメッセージまで…これはすごいかも!」

Excel関数とVBAの使い分け方とは?

シーン向いている方法
単純な条件分岐(1~2条件)IF関数
条件に応じて複数の処理を行いたいVBA
条件で色やセル操作を変えたいVBA
他のシートやファイルもまたいで処理したいVBA
先輩

「最初は関数で十分。でも“あれ?できない?”と思ったら、VBAを思い出してほしい。」

6. よくある初心者のつまずきポイント

  • 「If」のあとにThenを忘れてエラー
  • 複数条件でAndOrの使い方に迷う
  • ElseIfEnd Ifの書き忘れ
A子さん

「よく“End If がない”って怒られるんだけど、書き方ってすぐ覚えられる?」

先輩

「大丈夫、構文はいつも同じ形。テンプレを覚えて使い回すのがコツだよ。」

7. まとめ:IF関数の次は、VBAで一歩踏み出そう!

IF関数はExcelの条件分岐の入り口にすぎません。
複雑な処理や柔軟な動作を実現したいなら、VBAの If文 を使ってみる価値は十分にあります。

A子さん

「なんか、VBAってやってみたくなってきたかも!」

関連記事リンク(H2見出し)

  • 【初心者向け】VBAのIf文の使い方と注意点をわかりやすく解説
  • 【初心者向け】VBAで型を指定しないとどうなる?落とし穴とその回避方法を解説
  • 【初心者向け】変数とは?Dimによる宣言方法をやさしく解説
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次