目的
- クラスモジュールなどを作成する際、事前バインディングを利用すると、あとで流用する時に参照設定漏れなどで不具合の元になるため、個人的に実行時バインディングで記入することが多い。
そのため、必要になる処理を備忘+コピー&ペースト用に整理する。
オブジェクトの参照方法について
呼び出し方法によってインスタンスの生成タイミングが異なるため、
状況によっては注意が必要。
Set = での宣言
Dim obj As Object
Set obj = CreateObject("Scripting.FileSystemObject")
' ~~~ 処理 ~~~
MsgBox obj.GetFolder("C:\temp").Files.Count
' ~~~~~~~~~~~~
Set obj = Nothing
Setで代入した際にインスタンスが生成される。
With での宣言
With CreateObject("Scripting.FileSystemObject")
' ~~~ 処理 ~~~
MsgBox .GetFolder("C:\temp").Files.Count
' ~~~~~~~~~~~~
End With
With内で最初に呼び出されたメソッド、プロパティ利用時にインスタンスが生成される。
実行時バインディング 一覧
| 参照設定 | class(CreateObject) | オブジェクト式(As,New) |
|---|---|---|
| Microsoft Access X.X Object Library | Access.Application | Access.Application |
| Microsoft Excel X.X Object Library | Excel.Application | Excel.Application |
| Microsoft Word X.X Object Library | Word.Application | Word.Application |
| Microsoft Word X.X Object Library | Word.Document | Word.Document |
| Microsoft PowerPoint X.X Object Library | PowerPoint.Application | PowerPoint.Application |
| Microsoft Outlook X.X Object Library | Outlook.Application | Outlook.Application |
| Microsoft CDO for Windows 2000 Library | CDO.Message | CDO.Message |
| Microsoft Internet Controls | InternetExplorer.Application ※1 | InternetExplorer |
| Microsoft HTML Object Library | htmlfile | HTMLDocument |
| Microsoft XML, vX.X | MSXML2.XMLHTTP XMLHTTP60 …Windows10 | MSXML2.XMLHTTP |
| Microsoft ActiveX Data Objects X.X Library | ADODB.Connection | ADODB.Connection |
| Microsoft ActiveX Data Objects X.X Library | ADODB.Recordset | ADODB.Recordset |
| Microsoft ActiveX Data Objects X.X Library | ADODB.Stream | ADODB.Stream |
| Microsoft DAO 3.6 Object Library | DAO.DBEngine.120 | DAO.DBEngine |
| Microsoft Forms 2.0 Object Library | new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69} | MSForms.DataObject |
| Microsoft Scripting Runtime | Scripting.Dictionary | Dictionary |
| Microsoft Scripting Runtime | Scripting.FileSystemObject | FileSystemObject |
| Windows Script Host Object Model | Wscript.Shell | WshShell |
| Microsoft Shell Controls And Automation | Shell.Application | Shell32.Shell |
| Microsoft VBScript Regular Expressions X.X | VBScript.RegExp | RegExp |
| Microsoft WMI Scripting VX.X Library | WbemScripting.SWbemLocator | WbemScripting.SWbemLocator |
※1 InternetExplorer.Applicationについて
IE11は2022年6月にサポート終了しており、CreateObject("InternetExplorer.Application")は基本的に動作しません。代替手段として、HTTPリクエストにはMSXML2.ServerXMLHTTP、ブラウザ操作にはSeleniumやPower Automate for Desktopの利用を検討してください。