

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

例:DAOを使った場合
▼参照設定(早期バインディング)
参照設定 → 「Microsoft Office 16.0 Access database engine Object Library」 を追加します。

Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("SELECT * FROM 顧客", dbOpenDynaset)
▼ 非参照設定(遅延バインディング)
Dim db As Object
Dim rs As Object
Set db = CreateObject("DAO.DBEngine.120").OpenDatabase("C:\sample.mdb")
Set rs = db.OpenRecordset("SELECT * FROM 顧客", 2) ' dbOpenDynaset = 2
◆参照設定あり vs. 非参照設定(CreateObject)
項目 | 参照設定あり | 非参照設定(CreateObject) |
---|---|---|
補完(IntelliSense) | あり ✅ | なし ❌ |
実行速度 | 速い ✅ | やや遅い ❌ |
配布 | 注意必要 ❌ | 安心 ✅(参照設定の誘導なくとも、コードのみ配布できる) |
安定性 | 高い ✅ | やや不安定(バージョン依存)❌ |
「補完」とはVBA記載中に、ピリオドを押すとプロパティやメソッドが選択できる機能のことです。これは、便利ですよね。





コメントを残す