Excel

FileSystemObject・ファイルシステムオブジェクト

ファイルシステムへのアクセスを提供します。

例えば以下のような操作をすることができます。

  • ファイルシステム
  • ドライブ
  • フォルダ
  • ファイル

FileSystemObjectオブジェクトの操作

FileSystemObjectオブジェクトを使う場合、インスタンスを生成する必要があります。

生成方法は2つ。

  1. 事前バイディング
  2. 実行時バイディング

CSVファイルの最終行を調べる方法を例に上記の違いを説明します。

ここで使う例のCSVファイル

最終行は「11」です。

CSVファイル

事前バイディング・Microsoft Scripting Runtimeの参照設定

事前に参照設定をする必要があります。

New Scripting.FileSystemObject

(1)Microsoft Scripting Runtimeの参照設定を行います。

VBE>[ツール]>[参照設定]を選択します。

参照設定

「Microsoft Scripting Runtime」にチェックを入れます。

Microsoft Scripting Runtime

(2)標準モジュールにコードを入力します。

Sub sample()
    Dim fso As New Scripting.FileSystemObject
    Dim fPath As String: fPath = "F:\sample\test1.csv"
    
    Debug.Print fso.OpenTextFile(fPath, 8).Line
End Sub

実行結果です。

イミディエイトウィンドウ

実行時バイディング

参照設定は必要ない方法です。

CreateObject("Scripting.FileSystemObject")

こちらの方法では、自動メンバーが表示されません。

作成したマクロを自分以外の人が使う場合、参照設定する必要のない実行時バイディングの方が手間がかかりません。

Sub sample2()
    Dim fso As Object
    Dim fPath As String: fPath = "F:\sample\test1.csv"
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    Debug.Print fso.OpenTextFile(fPath, 8).Line    
End Sub

実行結果です。

イミディエイトウィンドウ

参考・実行時バイディングでの使用例

-Excel
-

© 2021 オフィスのQ&A