if文は、増えるほど読みにくくなります🤔
たとえば、
動物の名前から鳴き声を返す処理。
If val = "犬" Then
ret = "ワン"
ElseIf val = "猫" Then
ret = "にゃん"
ElseIf val = "蛙" Then
ret = "ケロケロ"
End If
まだ3つだから読めますが、これが10個、20個と増えていくと😱
少しつらくなります😢
そんなときは「連想配列」です!
VBAでは、
Scripting.Dictionary
を使うと、
対応関係を、そのまま書けます。
Dim dic As Object
Set dic = CreateObject("Scripting.Dictionary")
dic.Add "犬", "ワン"
dic.Add "猫", "にゃん"
dic.Add "蛙", "ケロケロ"
ret = dic(val)
対応表が、そのままコードになります!
この書き方の良いところは、
「条件」ではなく
「対応」
として書けることです。
見た瞬間に、
何をしているか分かります。
追加も簡単!
dic.Add "牛", "モー"
1行追加するだけです。
If文のように、
ElseIf の位置を気にする必要もありません。
ポイント
VBAは、表の形が似合います
If文は、「分岐」を書くものです。
連想配列は、「対応表」を書くものだと捉え、上手に使い分けしましょう。



コメントを残す