■ 最新の投稿

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

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

🔷 FileSystemObject(FSO)とは?

VBAでファイルやフォルダを扱うためのCOMオブジェクト
コピー、移動、削除、作成、存在確認など、ファイル操作全般ができます。

例:FileSystemObjectを使った場合

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

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

Dim fso As FileSystemObject
Set fso = New FileSystemObject

Dim file As TextStream
Set file = fso.OpenTextFile("C:\test.txt", ForReading)

Debug.Print file.ReadAll
file.Close

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

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")

Dim file As Object
Set file = fso.OpenTextFile("C:\test.txt", 1)  ' 1 = ForReading

Debug.Print file.ReadAll
file.Close

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

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

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


Comments

コメントを残す

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