

VBAでは、参照設定する方法と、しない(遅延バインディング)で CreateObject
や As
Objectを使う方法があります。
🔷 Shell.Application
とは?
Windowsの「エクスプローラーの機能」を操作できるCOMオブジェクト。
✅ ファイル選択ダイアログ
✅ フォルダの操作
✅ エクスプローラーウィンドウ制御
✅ ゴミ箱操作 など

例:Shell.Application
を使った場合
Shell.Application
▼参照設定(早期バインディング)
参照設定 → 「Microsoft Shell Controls and Automation」 を追加します。

Dim shellApp As New Shell32.shell
Dim desktopFolder As Object
' &H10 = デスクトップのこと
Set desktopFolder = shellApp.Namespace(&H10&)
Dim item As Object
For Each item In desktopFolder.Items
Debug.Print item.Name
Next
▼ 非参照設定(遅延バインディング)
Dim shellApp As Object
Set shellApp = CreateObject("Shell.Application")
Dim desktopFolder As Object
' &H10 = デスクトップのこと
Set desktopFolder = shellApp.Namespace(&H10&)
Dim item As Object
For Each item In desktopFolder.Items
Debug.Print item.Name
Next
◆参照設定あり vs. 非参照設定(CreateObject)
項目 | 参照設定あり | 非参照設定(CreateObject) |
---|---|---|
補完(IntelliSense) | あり ✅ | なし ❌ |
実行速度 | 速い ✅ | やや遅い ❌ |
配布 | 注意必要 ❌ | 安心 ✅(参照設定の誘導なくとも、コードのみ配布できる) |
安定性 | 高い ✅ | やや不安定(バージョン依存)❌ |
「補完」とはVBA記載中に、ピリオドを押すとプロパティやメソッドが選択できる機能のことです。これは、便利ですよね。





コメントを残す