第119回.ファイルシステムオブジェクト(FileSystemObject)
FileSystemObjectオブジェクトは、コンピュータのファイル システムへのアクセスを提供します、
VBAに用意されているファイル操作関連のステートメントや関数より、
より強力で、より多くの機能が搭載されています。
ただし、機能が大変多いため、これらを全て覚えるという事は困難です。
必要になったら、その部分を調べるようにしてください。
FileSystemObjectオブジェクトの使用方法
Set objFSO = CreateObject("Scripting.FileSystemObject")
使用方法2.
Dim objFSO As New FileSystemObject
または、
Dim objFSO As FileSystemObject
Set objFSO = New FileSystemObject
基本的には、参照設定して使うようにして下さい。
VBEでのメンバー候補表示が有効になるので、調べやすくなりますし、入力も楽になります。
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]]]) |
メソッドの戻り値のオブジェクト
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オブジェクトが出てくるのは、6からですが、
Dir関数の使い方と合わせて、一緒にお読みになると良いでしょう。
FileSystemObject関連の記事
同じテーマ「マクロVBA入門」の記事
第116回.ファイル操作U(OpenとClose)
第117回.ファイル操作U(Line Input #)
第118回.ファイル操作U(Print #)
第119回.ファイルシステムオブジェクト(FileSystemObject)
第120回.OnTimeメソッド
第121回.SendKeysメソッドとAppActivateステートメント
第122回.Shell関数
第123回.APIについて(Win32API)
第124回.Workbookのイベントプロシージャー
第125回.Worksheetのイベントプロシージャー
第126回.入力規則(Validation)
新着記事 ・・・新着記事一覧を見る
Excelシートの複雑な計算式を解析するVBA|VBAサンプル集(2月18日)
VBAクラスの作り方:独自Rangeっぽいものを作ってみた|VBA技術解説(2月16日)
VBAクラスの作り方:列名のプロパティを自動作成する|VBA技術解説(2月14日)
VBAクラスの作り方:列名の入力支援と列移動対応|VBA技術解説(2月11日)
クラスを使って他ブックのイベントを補足する|VBA技術解説(2月6日)
Excelアドインの作成と登録について|VBA技術解説(2月3日)
参照設定、CreateObject、オブジェクト式の一覧|VBA技術解説(1月20日)
VBAでファイルを規定のアプリで開く方法|VBA技術解説(1月20日)
ドキュメントプロパティ(BuiltinDocumentProperties,CustomDocumentProperties)|VBA技術解説(1月19日)
他ブックへのリンクエラーを探し解除|VBAサンプル集(1月15日)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.変数とデータ型(Dim)|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.RangeとCellsの使い方|ExcelマクロVBA入門
6.マクロって何?VBAって何?|ExcelマクロVBA入門
7.繰り返し処理(For Next)|ExcelマクロVBA入門
8.とにかく書いて見よう(Sub,End Sub)|VBA入門
9.定数と型宣言文字(Const)|ExcelマクロVBA入門
10.ひらがな⇔カタカナの変換|エクセル基本操作
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。