ExcelマクロVBA入門 | 第119回.ファイルシステムオブジェクト(FileSystemObject) | Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説



最終更新日:2018-01-31

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


FileSystemObjectオブジェクトは、コンピュータのファイル システムへのアクセスを提供します、

VBAに用意されているファイル操作関連のステートメントや関数より、
より強力で、より多くの機能が搭載されています。

ただし、機能が大変多いため、これらを全て覚えるという事は困難です。

一通り目を通して、どんな機能があるかだけを押さえておき、
必要になったら、その部分を調べるようにしてください。


FileSystemObjectオブジェクトの使用方法

使用方法1.
Dim objFSO As Object

Set objFSO = CreateObject("Scripting.FileSystemObject")

使用方法2.
ツール」→「参照設定」に、「Microsoft Scripting Runtime」にチェックを付ける。

Dim objFSO As New FileSystemObject

または、

Dim objFSO As FileSystemObject
Set objFSO = New FileSystemObject

基本的には、参照設定して使うようにして下さい。
VBEでのメンバー候補表示が有効になるので、調べやすくなりますし、入力も楽になります。



FileSystemObjectオブジェクトのプロパティとメソッド

FileSystemObjectオブジェクトのプロパティ

プロパティ 説明
Drives ローカル マシンで利用できるすべての Drive オブジェクトが入った Drives コレクションを返します。


FileSystemObjectオブジェクトのメソッド

メソッド 説明 構文
BuildPath 既存のパスの末尾に名前を追加します object.BuildPath(path, name)
CopyFile ファイルを別の場所へコピーします。 object.CopyFile ( source, destination[, overwrite] )
CopyFolder フォルダを再帰的に別の場所へコピーします。 object.CopyFolder ( source, destination[, overwrite] )
CreateFolder フォルダを作成します。 object.CreateFolder(foldername)
CreateTextFile 指定した名前のファイルを作成し、作成したファイルの読み取りまたは書き込みに使用できる TextStream オブジェクトを返します。 object.CreateTextFile(filename[, overwrite[, unicode]])
DeleteFile 指定されたファイルを削除します。 object.DeleteFile ( filespec[, force] )
DeleteFolder 指定されたフォルダおよびそのフォルダ内のフォルダとファイルを削除します。 object.DeleteFolder ( folderspec[, force] )
DriveExists 指定されたドライブが存在する場合は、真 (true) を返します。存在しない場合は、偽 (false) を返します。 object.DriveExists(drivespec)
FileExists 指定したファイルが存在する場合は、真 (true) を返します。存在しない場合は、偽 (false) を返します。 object.FileExists(filespec)
FolderExists 指定されたフォルダが存在する場合は、真 (true) を返します。存在しない場合は、偽 (false) を返します。 object.FolderExists(folderspec)
GetAbsolutePathName 指定されたパスの絶対パス名を返します。 object.GetAbsolutePathName(pathspec)
GetBaseName 指定されたパス内に含まれるファイルのベース名 (ファイル拡張子を除いたもの) を表す文字列を返します。 object.GetBaseName(path)
GetDrive 指定されたパスに含まれるドライブに対応する Drive オブジェクトを返します。 object.GetDrive ( drivespec )
GetDriveName 指定されたパスのドライブ名を返します。 object.GetDriveName(path)
GetExtensionName 指定されたパスの拡張子を表す文字列を返します。 object.GetExtensionName(path)
GetFile 指定されたパスに置かれているファイルに対応する File オブジェクトを返します。 object.GetFile(filespec)
GetFileName 指定されたパスの最後のファイル名またはフォルダ名を返します。 object.GetFileName(pathspec)
GetFolder 指定されたパスに置かれているフォルダに対応する Folder オブジェクトを返します。 object.GetFolder(folderspec)
GetParentFolderName 指定されたパスの最後のファイルまたはフォルダの親フォルダの名前が入った文字列を返します。 object.GetParentFolderName(path)
GetSpecialFolder 指定された特殊フォルダを返します。 object.GetSpecialFolder(folderspec)
GetTempName 一時ファイルまたは一時フォルダの名前をランダムに生成して返します。このメソッドは、一時ファイルや一時フォルダを必要とする処理を行うときに便利です。 object.GetTempName ( )
MoveFile ファイル (複数可) を別の場所へ移動します。 object.MoveFile ( source, destination )
MoveFolder フォルダ (複数可) を別の場所へ移動します。 object.MoveFolder ( source, destination )
OpenTextFile 指定したファイルを開き、開いたファイルの読み取り、または追加書き込みに使用できる TextStream オブジェクトを返します。 object.OpenTextFile(filename[, iomode[, create[, format]]])



メソッドの戻り値のオブジェクト

FileSystemObjectオブジェクトのメソッドの戻り値として、以下のオブジェクトがあります。

Driveオブジェクト
Folderオブジェクト
Fileオブジェクト
TextStreamオブジェクト


以下に、それぞれのオブジェクのメンバ(プロパティ、メソッド)の一覧を掲載しておきます。


Driveオブジェクト

プロパティ、メソッド 説明
AvailableSpace プロパティ 指定されたドライブまたはネットワーク共有でユーザーが使用できるディスク容量を返します。
DriveLetter プロパティ 物理ローカル ドライブまたはネットワーク共有のドライブ名を返します。値の取得のみ可能です。
DriveType プロパティ 指定されたドライブの種類を示す値を返します。
FileSystem プロパティ 指定されたドライブに使用されているファイル システムの種類を返します。
FreeSpace プロパティ 指定されたドライブまたはネットワーク共有でユーザーが使用できるディスクの空き境域を返します。値の取得のみ可能です。
IsReady プロパティ 指定されたドライブの準備ができている場合は真 (true) を返します。
準備ができてない場合は偽 (false) を返します。
Path プロパティ 指定されたファイル、フォルダ、またはドライブのパスを返します。
RootFolder プロパティ 指定されたドライブのルート フォルダを表す Folder オブジェクトを返します。
値の取得のみ可能です。
SerialNumber プロパティ ディスク ボリュームを一意に識別する小数のシリアル番号を返します。
ShareName プロパティ 指定されたドライブのネットワーク共有名を返します。
TotalSize プロパティ ドライブまたはネットワーク共有の総容量をバイト単位で返します。
VolumeName プロパティ 指定されたドライブのボリューム名を設定または返します。値の取得も可能です。


Folderオブジェクト

プロパティ、メソッド 説明
Attributes プロパティ ファイルまたはフォルダの属性を設定します。値の取得も可能です。属性によっては、値の取得のみ可能な場合もあります。
DateCreated プロパティ 指定されたファイルまたはフォルダの作成された日付と時刻を返します。値の取得のみ可能です。
DateLastAccessed プロパティ 指定されたファイルまたはフォルダが最後にアクセスされたときの日付と時刻を返します。
値の取得のみ可能です。
DateLastModified プロパティ 指定されたファイルまたはフォルダが最後に更新されたときの日付と時刻を返します。
値の取得のみ可能です。
Drive プロパティ 指定されたファイルまたはフォルダが格納されているドライブの名前を返します。
値の取得のみ可能です。
Files プロパティ 指定されたフォルダ内にあるすべての File オブジェクトの入った Files コレクションを返します。
このコレクションには、隠しファイルやシステム ファイルの属性を持つ File オブジェクトも含まれます。
IsRootFolder プロパティ 指定されたフォルダがルート フォルダの場合は、真 (true) を返します。
ルート フォルダでなければ、偽 (false) を返します。
Name プロパティ 指定されたファイルまたはフォルダの名前を設定します。値の取得も可能です。
ParentFolder プロパティ 指定されたファイルまたはフォルダが格納されているフォルダを表す Folder オブジェクトを返します。値の取得のみ可能です。
Path プロパティ 指定されたファイル、フォルダ、またはドライブのパスを返します。
ShortName プロパティ 従来の 8.3 形式のファイル名が必要なプログラムのために、短いファイル名を返します。
ShortPath プロパティ 従来の 8.3 形式のファイル名が必要なプログラムのために、短いパス名を返します。
Size プロパティ ファイルの場合、指定されたファイルのバイト単位のサイズを返します。フォルダの場合、指定されたフォルダ内のすべてのファイルおよびフォルダの合計サイズをバイト単位で返します。
SubFolders プロパティ 指定されたフォルダ内にあるすべてのフォルダの入った Folders コレクションを返します。
このコレクションには、隠しファイルやシステム ファイルの属性を持つフォルダも含まれます。
Type プロパティ ファイルまたはフォルダの種類に関する情報を返します。
たとえば、名前が .TXT の拡張子で終わるファイルの場合なら、"テキスト文書" という文字列が返されます。
Copy メソッド 指定したファイルまたはフォルダを別の場所にコピーします。
Delete メソッド 指定されたファイルまたはフォルダを削除します。
Move メソッド 指定されたファイルまたはフォルダを別の場所へ移動します。
OpenAsTextStream メソッド 指定したファイルを開き、開いたファイルの読み取り、または追加書き込みに使用できる TextStream オブジェクトを返します。


Fileオブジェクト

プロパティ、メソッド 説明
Attributes プロパティ ファイルまたはフォルダの属性を設定します。値の取得も可能です。
属性によっては、値の取得のみ可能な場合もあります。
DateCreated プロパティ 指定されたファイルまたはフォルダの作成された日付と時刻を返します。
値の取得のみ可能です。
DateLastAccessed プロパティ 指定されたファイルまたはフォルダが最後にアクセスされたときの日付と時刻を返します。
値の取得のみ可能です。
DateLastModified プロパティ 指定されたファイルまたはフォルダが最後に更新されたときの日付と時刻を返します。
値の取得のみ可能です。
Drive Property 指定されたファイルまたはフォルダが格納されているドライブの名前を返します。
値の取得のみ可能です。
Name プロパティ 指定されたファイルまたはフォルダの名前を設定します。値の取得も可能です。
ParentFolder プロパティ 指定されたファイルまたはフォルダが格納されているフォルダを表す Folder オブジェクトを返します。値の取得のみ可能です。
Path プロパティ 指定されたファイル、フォルダ、またはドライブのパスを返します。
ShortName プロパティ 従来の 8.3 形式のファイル名が必要なプログラムのために、短いファイル名を返します。
ShortPath プロパティ 従来の 8.3 形式のファイル名が必要なプログラムのために、短いパス名を返します。
Size プロパティ ファイルの場合、指定されたファイルのバイト単位のサイズを返します。
フォルダの場合、指定されたフォルダ内のすべてのファイルおよびフォルダの合計サイズをバイト単位で返します。
Type プロパティ ファイルまたはフォルダの種類に関する情報を返します。
たとえば、名前が .TXT の拡張子で終わるファイルの場合なら、"テキスト文書" という文字列が返されます。
Copy メソッド 指定したファイルまたはフォルダを別の場所にコピーします。
Delete メソッド 指定されたファイルまたはフォルダを削除します。
Move メソッド 指定されたファイルまたはフォルダを別の場所へ移動します。
OpenAsTextStream メソッド 指定したファイルを開き、開いたファイルの読み取り、または追加書き込みに使用できる TextStream オブジェクトを返します。


TextStreamオブジェクト

プロパティ、メソッド 説明
AtEndOfLine プロパティ TextStream ファイル内でファイル ポインタが行末 (EOL) の直前に置かれている場合に真 (true) を返します。それ以外の場合は、偽 (false) を返します。値の取得のみ可能です。
AtEndOfStream プロパティ TextStream ファイル内でファイル ポインタがファイルの最後に置かれている場合に真 (true) を返します。それ以外の場合は、偽 (false) を返します。値の取得のみ可能です。
Column プロパティ TextStream ファイル内での現在の文字位置のカラム番号を返します。
値の取得のみ可能です。
Line プロパティ TextStream ファイル内での現在の行番号を返します。
値の取得のみ可能です。
Close メソッド 開いた状態の TextStream ファイルを閉じます。
Read メソッド TextStream ファイルから指定された文字数を読み込み、その結果の文字列を返します。
ReadAll メソッド TextStream ファイル全体を読み込み、その結果の文字列を返します。
ReadLine メソッド TextStream ファイルから 1 行 (改行文字を除く) を読み込み、その結果の文字列を返します。
Skip メソッド TextStream ファイルを読み込むときに指定された数の文字数をスキップします。
SkipLine メソッド TextStream ファイルを読み込むときに次の行をスキップします。
Write メソッド 指定した文字列を TextStream ファイルに書き込みます。
WriteBlankLines メソッド 指定された数の改行文字を TextStream ファイルに書き込みます。
WriteLine メソッド 指定した文字列と改行文字を TextStream ファイルに書き込みます。



使用例



FileSystemObject関連の記事





同じテーマ「マクロVBA入門」の記事

第116回.ファイル操作U(OpenとClose)
第117回.ファイル操作U(Line Input #)
第118回.ファイル操作U(Print #)
第120回.OnTimeメソッド
第121回.SendKeysメソッドとAppActivateステートメント
第122回.Shell関数
第123回.APIについて(Win32API)
第124回.Workbookのイベントプロシージャー
第125回.Worksheetのイベントプロシージャー
第126回.入力規則(Validation)

新着記事 ・・・新着記事一覧を見る

VBAを定型文で覚えよう|ExcelマクロVBA技術解説(3月26日)
VBAスタンダード試験対策まとめ|MOS VBAエキスパート対策(3月16日)
ユーザーフォームとメニューの操作|MOS VBAエキスパート対策(3月14日)
ファイルの操作|MOS VBAエキスパート対策(3月14日)
ユーザーフォームの各種イベント|Excelユーザーフォーム(3月13日)
レジストリの操作|MOS VBAエキスパート対策(3月12日)
変数と配列|MOS VBAエキスパート対策(3月12日)
Colorプロパティの設定値一覧|VBA技術解説(3月12日)
APIとOLEオートメーション|MOS VBAエキスパート対策(3月11日)
エラーへの対処|MOS VBAエキスパート対策(3月10日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数とデータ型(Dim)|ExcelマクロVBA入門
6.ひらがな⇔カタカナの変換|エクセル基本操作
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.定数と型宣言文字(Const)|ExcelマクロVBA入門
9.とにかく書いて見よう(Sub,End Sub)|VBA入門
10.繰り返し処理(For Next)|ExcelマクロVBA入門



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

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。





    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。

    本文下部へ

    ↑ PAGE TOP