FileSystemObjectの参照下で使用できるようになる、
Fileオブジェクトの取得方法とプロパティ・メンバー一覧を記載します。
※ FileSystemObjectについての解説はこちらからどうぞ
www.limecode.jp
Fileオブジェクトの取得方法
Fileオブジェクトを取得する方法は以下の2つです。
FileSystemObject.GetFileメソッド
Dim ファイル As File Set ファイル = FSO.GetFile(対象ファイルのパス)
Folderオブジェクト.Filesプロパティ(の各Item)
Dim 親フォルダ As Folder Set 親フォルダ = FSO.GetFolder(対象フォルダのパス) Dim ファイル As File For Each ファイル In 親フォルダ.Files Next
Filesコレクションからのファイル取得にはほぼForEach文を使うと思いますが、
ファイル名を指定すればItemプロパティでも取得が可能です。
Dim 親フォルダ As Folder Set 親フォルダ = FSO.GetFolder(対象フォルダのパス) Dim ファイル As File Set ファイル = 親フォルダ.Files.Item(ファイル名) ' または Set ファイル = 親フォルダ.Files(ファイル名) ' ※Itemは省略可
ただし、指定できるのはKey = ファイル名だけであり、
WorksheetsのようにIndexで指定することはできません。
Set ファイル = 親フォルダ.Files(1) ' ⇐ これはエラー
Fileオブジェクトのメンバー一覧
メソッド一覧
メソッド | 概要 |
---|---|
Copy | ファイルをコピー |
Delete | ファイルを削除 |
Move | ファイルを移動 |
OpenAsTextStream | テキストファイルのTextStreamオブジェクトを取得 |
Copy(ファイルをコピー)
ファイル.Copy 行先のパス, [上書きするか_省略時はTrue=する]
行先のパスは
- 「フォルダパス\」ならそのフォルダへ
- 「フォルダパス」はエラー(\を最後に付けないとダメ)
- 「ファイルパス」ならコピーして別名にリネーム
Delete(ファイルを削除)
ファイル.Delete [読取専用ファイルも消すか_省略時はFalse=しない]
Move(ファイルを移動)
ファイル.Move 行先のパス
行先のパスは
- 「フォルダパス\」ならそのフォルダへ
- 「フォルダパス」はエラー(\を最後に付けないとダメ)
- 「ファイルパス」なら移動して別名にリネーム
※ 同名ファイルの上書きは不可(エラー)
OpenAsTextStream(TextStreamを取得)
Dim 編集するテキスト As TextStream Set 編集するテキスト = ファイル.OpenAsTextStream([iomode], [format])
プロパティ一覧
プロパティ | 取得 | 設定 | 型 |
---|---|---|---|
Attributes | ファイルの属性 | ○ | Long ※1 |
DateCreated | 作成日時 | Date | |
DateLastAccessed | アクセス日時 | Date | |
DateLastModified | 更新日時 | Date | |
Drive | 親ドライブ | Drive | |
Name | ファイル名 | ○ | String |
ParentFolder | 親フォルダ | Folder | |
Path | [規定]ファイルパス | String | |
Size | サイズ | Long ※2 | |
Type | ファイルの種類 | String | |
ShortName | 8.3形式名(古い) | String | |
ShortPath | 8.3形式パス(古い) | String |
※1 : 正確には列挙型vbFileAttribute。(Dir関数の引数に渡すのと同じもの)
※2 : バイト数を整数値で返す。型はVariantだが事実上Long。
すべて引数はありませんので、
Dim 作成日時 As Date 作成日時 = ファイル.DateCreated
このように各値を取得してください。
既定のプロパティはPathですので、
Dim ファイルパス As String ファイルパス = ファイル
でパスを取得できますが、見てわかる通りかなり紛らわしいです。
よってプロパティ名の省略はおすすめしません。
設定も行えるプロパティは「名称」と「属性」の2つです。
' ファイル名の変更 ファイル.Name = 変更するファイル名 ' ファイルを隠しファイルにする ファイル.Attributes = Hidden
これ以外のプロパティは読み取り専用です。
以上がFileオブジェクトの取得方法とプロパティ・メンバー一覧です。
その他FileSystemObjectの解説ついてはこちらを参照ください。
www.limecode.jp