■ 最新の投稿

VBA:『Scripting.Dictionary』 参照設定 vs. 非参照設定(CreateObject)の違い

VBAでは、参照設定する方法と、しない(遅延バインディング)で CreateObjectAs Objectを使う方法があります。

🔷 Scripting.Dictionary とは?

VBAで「キーと値」のペアを扱えるオブジェクト。
配列やCollectionより高機能な「連想配列」として使えます。

例:FileSystemObjectを使った場合

▼参照設定(早期バインディング)

参照設定 → 「Microsoft Scripting Runtime」 を追加します。

Dim dict As Scripting.Dictionary
Set dict = New Scripting.Dictionary

dict.Add "apple", 100
dict.Add "banana", 150

Debug.Print dict("apple")    ' 100
Debug.Print dict.Exists("orange")    ' False

▼ 非参照設定(遅延バインディング)

Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")

dict.Add "apple", 100
dict.Add "banana", 150

Debug.Print dict("apple")    ' 100
Debug.Print dict.Exists("orange")    ' False

◆参照設定あり vs. 非参照設定(CreateObject)

項目参照設定あり参照設定(CreateObject)
補完(IntelliSense)あり ✅なし ❌
実行速度速い ✅やや遅い ❌
配布注意必要 ❌安心 ✅(参照設定の誘導なくとも、コードのみ配布できる)
安定性高い ✅やや不安定(バージョン依存)❌

「補完」とはVBA記載中に、ピリオドを押すとプロパティやメソッドが選択できる機能のことです。これは、便利ですよね。


Comments

コメントを残す

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