VBA初心者のための「Scripting Dictionary」入門
この記事は個人的な備忘録の面が強いです。
VBA初心者の方に役立てばという思いで公開します。
不明点、補足などあればコメント頂けると非常に助かります!
Scripting Dictionary(スクリプティングディクショナリ)は、VBAで「キー」と「値」のペアを効率的に扱える便利な機能です。例えば、「名前」と「年齢」といった関連するデータをセットで保存し、特定のキー(名前)を使って、簡単に値(年齢)を取り出すことができます。
- 基本設定
まず、Scripting Dictionaryを使うためにオブジェクトを作成します。
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
これで「dict」という名前のScripting Dictionaryが準備完了です。
- データを追加する
辞書にデータを追加する際は「.Add」を使います。例えば、キーに「名前」、値に「年齢」を設定してみましょう。
dict.Add "Taro", 30 ' キー「Taro」、値「30」
dict.Add "Hanako", 25 ' キー「Hanako」、値「25」
- データを検索する
特定のキーに対応する値を取り出すには、「Item」を使います。たとえば、「Taro」の年齢を知りたい場合、以下のコードで取得できます。
Dim age As Integer
age = dict.Item("Taro") ' 結果は「30」
- キーの一覧を取得する
Dictionary内のすべてのキーを取得したい場合は、「keys」メソッドを使って配列に変換します。
Dim keys As Variant
keys = dict.keys
これで、「keys」という配列にすべてのキーが格納されました。
- データをシートに出力する
Scripting Dictionaryのデータをシートに出力することも可能です。A列にキー、B列に値を順番に表示させるには、次のようなコードを使います。
Dim i As Integer
i = 1
For Each Key In dict.keys
ActiveSheet.Cells(i, 1) = Key ' A列にキーを表示
ActiveSheet.Cells(i, 2) = dict.Item(Key) ' B列に値を表示
i = i + 1
Next Key
このコードを実行すると、A列には「Taro」「Hanako」といったキーが、B列にはそれぞれの値が順に表示されます。
以上が、VBA初心者でも簡単に扱える「Scripting Dictionary」の基本的な使い方です。データの整理や検索が楽になるので、ぜひ使ってみてください!
Discussion