1. ホーム
  2. vba

[解決済み] VBAのハッシュテーブル/連想配列

2023-02-24 21:08:32

質問

VBAでハッシュテーブルや連想配列を作成する方法を説明したドキュメントが見つからないようです。それは可能なのでしょうか?

記事にリンクするか、もっと良い方法は、コードを投稿することでしょうか?

どのように解決するのですか?

Microsoft Scripting Runtime ライブラリにある Dictionary オブジェクトを探しているのだと思います。(VBE の [ツール] - [参照] メニューから、プロジェクトに参照を追加してください)。

これは、バリアントに収まる任意の単純な値でほとんど動作します (キーは配列にできませんし、オブジェクトにしようとしてもあまり意味がありません)。下記の @Nile からのコメントを参照してください)。

Dim d As dictionary
Set d = New dictionary

d("x") = 42
d(42) = "forty-two"
d(CVErr(xlErrValue)) = "Excel #VALUE!"
Set d(101) = New Collection

もっとシンプルに、文字列のキーだけが必要な場合は、VBAのCollectionオブジェクトを使うこともできます。

もし、ハッシュテーブルのようなパフォーマンスが必要であれば、もっと詳しく調べてみてください。(編集: Scripting.Dictionary では ハッシュテーブル を内部で使用しています)。