ExcelWork.info

Excel(エクセル)のマクロ・VBA・関数・操作などのメモ

ファイルシステムオブジェクト(FileSystemObject)の使い方

      2016/12/10

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

FileSystemObject(FSO)を利用するとファイルフォルダドライブの様々な操作を行うことができます。
FileSystemObject(FSO)を利用するには、Microsoft Scripting Runtime を参照設定するか、CreateObject 関数 を使用します。
なお、FileSystemObject の場合、使用後の解放( Set FSO = Nothing とか)は不要のようです(たぶん)。つけている方もいらっしゃるので、気になる方はつけてください。


FileSystemObject(FSO)を利用する1

Microsoft Scripting Runtime を参照設定します。

  1. VBE(Visual Basic Editor) を起動し、[ツール] – [参照設定] をクリックします。
    FSO 参照設定 1
  2. 「参照設定」ダイアログボックスが表示されるので、スクロールバーを動かし、「Microsoft Scripting Runtime」を表示し、チェックマークを付けて、「OK」ボタンをクリックします。
    FSO 参照設定 2

【書式】

<FileSystemObject のインスタンス生成>
Dim fso As New FileSystemObject


引数・戻り値

  • fso  ・・・  任意の名前( FileSystemObject オブジェクト の変数名)を指定します。



FileSystemObject(FSO)を利用する2

参照設定を行わず、CreateObject 関数を使って、FileSystemObject(FSO) を利用します。
ただし、この方法の場合、参照設定を行った場合と比べて実行速度が遅くなります。また、VBE(Visual Basic Editor)の入力支援機能を使用することはできません。


【書式】

<FileSystemObject のインスタンス生成>
Dim fso [ As Object ]
Set fso = CreateObject(“Scripting.FileSystemObject”)


引数・戻り値

  • fso  ・・・  任意の名前( FileSystemObject オブジェクト の変数名)を指定します。



FSO 使用例

サンプルVBAソース 1


実行結果 1

FSO(参照設定)使用例



サンプルVBAソース 2


実行結果 2

FSO(参照設定しない)使用例



 - FileSystemObject , , , , , ,

Comment

  1. 名無し より:

    この「参照設定を行わない使用例」は動作しないのではないでしょうか
    宣言の所で、ScriptingRuntime が参照設定になっていないためエラーで動作しないはずです
    7・8・9行目の
    As Folder
    As Files
    As File
    の3つの所は「ScriptingRuntime」が必要なはずで
    デバッグメニューからコンパイルをすると、ユーザー定義型は定義されていませんという
    エラーになりましたので、参照設定を外さずに「CreateObject」に置き換えたのかと思われます

    なので、参照設定を外していないのであればCreateObjectを使う必要性が薄いような気がいたします

    ※Officeのバージョン
    Excel 2007, Access 2007
    で確認

    • 管理人 より:

      コメントありがとうございます。

      7、8、9行目を修正しました。
      修正前のコードでは、Scripting Runtime を参照設定せずに実行すると
      「ユーザー定義型は定義されていません。」等のエラメッセージが表示され動作しません。
      ご指摘ありがとうございました。

      ※ 7、8、9行目の修正前のコードは以下の通りです。
      Dim TargetFolder As Folder
      Dim myFiles As Files
      Dim myFile As File

Message

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  関連記事

FSO ParentFolder プロパティ
FileSystemObject:ファイルやフォルダの親フォルダを調べる(ParentFolder プロパティ)

指定したファイルやフォルダの親フォルダを調べる(ParentFolder プロパ …

FileSystemObject:ファイル・フォルダを削除する(DeleteFile メソッド,DeleteFolder メソッド)

ファイルを削除する(DeleteFile メソッド) FileSystemObj …

FSO Size プロパティ
FileSystemObject:ファイルやフォルダのサイズを取得(Size プロパティ)

ファイルやフォルダのサイズを取得(Size プロパティ) FileSystemO …

FSO OpenAsTextStream メソッド
FileSystemObject:ファイルを開く(OpenAsTextStream メソッド)

ファイルを開く(OpenAsTextStream メソッド) 指定されたファイル …

FSO IsRootFolder プロパティ
FileSystemObject:ルートフォルダかどうかを調べる(IsRootFolder プロパティ)

ルートフォルダかどうかを調べる(IsRootFolder プロパティ) File …

FSO Files プロパティ
FileSystemObject:フォルダ内のすべてのファイルを取得(Files プロパティ)

フォルダ内のすべてのファイルを取得(Files プロパティ) フォルダ内のすべて …

FSO Type プロパティ
FileSystemObject:フォルダやファイルの種類を調べる(Type プロパティ)

フォルダやファイルの種類を取得(Type プロパティ) FileSystemOb …

FSO ReadAll メソッド
TextStream ファイルを読み込む(Read,ReadLine,ReadAll)

ReadAll メソッド TextStream ファイルの内容全体を取得します。 …

FSO Drive オブジェクトのプロパティ
FileSystemObject:Drive オブジェクトの主なプロパティ

Drive オブジェクトの取得 Drive オブジェクト を取得するには、FSO …

FSO Delete メソッド 実行前
FileSystemObject:フォルダやファイルを削除(Delete メソッド)

フォルダやファイルを削除(Delete メソッド) FileSystemObje …