MENU

【比較】複雑な処理がシンプルに書ける!関数では限界だった作業をVBAでスマートに解決

先輩

Excel関数は便利だけど、条件が増えるとどんどん読みにくくなる…。
業務の中でこんな経験はありませんか?

A子さん

「IFが多すぎて、もう何が何だか…」
「VLOOKUPを入れ子にしたけど、壊れたら直せない…」

この記事では、複雑な処理を関数で頑張っていた人に向けて、VBAでのシンプルな書き方を実例でご紹介します。

目次

Excel関数での複雑な処理の壁

以下のような処理、あなたもやったことありませんか?

例:60点以上なら「合格」、80点以上なら「優秀」、それ以外は「不合格」

関数での書き方:

=IF(C2>=80,"優秀",IF(C2>=60,"合格","不合格"))

これくらいならまだ見やすいですが、
さらに条件が増えると、以下のような“スパゲッティ状態”になります。

=IF(AND(A2="営業",C2>=80),"S",
IF(AND(A2="営業",C2>=60),"A",
IF(AND(A2="技術",C2>=70),"B","C")))

見づらい・メンテナンスできない・他人が触れない
── これが関数の限界です。


VBAならどう書けるか?実例で紹介

同じ処理をVBAで書くとこうなります。

Sub 評価を付ける()
    Dim i As Long
    For i = 2 To 100
        Select Case Cells(i, 3).Value
            Case Is >= 80
                Cells(i, 4).Value = "優秀"
            Case Is >= 60
                Cells(i, 4).Value = "合格"
            Case Else
                Cells(i, 4).Value = "不合格"
        End Select
    Next i
End Sub

わかりやすさのポイント

  • Select Case構文で条件をスッキリ整理
  • 条件変更も簡単にできる
  • 誰が見ても理解しやすい

入れ子地獄からの解放

複数の IFANDOR を駆使していた処理も、
VBAの条件分岐(If〜ElseSelect Case)ならロジックを視覚的に整理できます。


VBAで処理をまとめるメリット

  • 処理のまとまりが明確
  • 同じロジックを複数のシートやブックで再利用可能
  • 将来的なメンテナンスが容易

おわりに|関数からVBAへの一歩が「効率化」への鍵

VBAは難しそうに見えて、実は構造化されていて初心者にもわかりやすい言語です。

関数で苦労している作業こそ、VBAに変える価値があります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次