■ 最新の投稿

VBA技:VBAの連想配列は、if文よりずっと読みやすい!

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文は、「分岐」を書くものです。

連想配列は、「対応表」を書くものだと捉え、上手に使い分けしましょう。


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です