◆ファイルシステムオブジェクトで利用できる メソッド・プロパティ
ファイルシステムオブジェクトのメソッドとプロパティを一覧にまとめました。
| 内容 | メソッド・プロパティ | R/W その他 |
|---|---|---|
| パスを作成する | BuildPath | |
| ファイルのコピー | CopyFile | 「オブジェクトを使用した File / Folder のコピー」 参照 Fileオブジェクトの Copy とまったく同じです |
| フォルダのコピー | CopyFolder | 「オブジェクトを使用した File / Folder のコピー」 参照 Folderオブジェクトの Copy とまったく同じです |
| フォルダの作成 | CreateFolder | |
| ファイルを作成してTextStreamオブジェクトを取得 | CreateTextFile | |
| ファイルの削除 | DeleteFile | 「オブジェクトを使用した File / Folder の削除」 参照 Fileオブジェクトの Delete とまったく同じです |
| フォルダの削除 | DeleteFolder | 「オブジェクトを使用した File / Folder の削除」 参照 Folderオブジェクトの Delete とまったく同じです |
| ドライブが存在するか確認する | DriveExists | |
| ファイルが存在するか確認する | FileExists | |
| フォルダが存在するか確認する | FolderExists | |
| 省略したパスから完全なパス名を取得する | GetAbsolutePathName | 取得のみ |
| ファイルのベース名を取得 | GetBaseName | 取得のみ |
| ドライブを取得 | GetDrive | 取得のみ 「Driveオブジェクト プロパティ」 参照 |
| ドライブ名を取得 | GetDriveName | 取得のみ |
| ファイルの拡張子を取得 | GetExtensionName | 取得のみ |
| ファイルを取得 | GetFile | 「Fileオブジェクト プロパティ」 参照 |
| ファイル名を取得 | GetFileName | 取得のみ |
| フォルダを取得 | GetFolder | 「Folderオブジェクト プロパティ」 参照 |
| 親フォルダのパスを取得 | GetParentFolderName | 取得のみ |
| 特別なフォルダを取得 | GetSpecialFolder | 取得のみ 0 Windows フォルダ 1 System フォルダ 2 Temp フォルダ |
| 一時的に使用するランダムなファイル名を作成 | GetTempName | |
| ファイルを移動 | MoveFile | 「オブジェクトを使用した File / Folder の移動」 参照 |
| フォルダを移動 | MoveFolder | 「オブジェクトを使用した File / Folder の移動」 参照 |
| 指定したファイルを開いてTextStreamを取得 | OpenTextFile | 「オブジェクトを使用したテキスト形式の読み込み・書き込み」 参照 |
| 利用できるすべてのドライブを取得 | Drives | 取得のみ |
Sub FileSystem_OBJ()
Dim FileSystemOBJ, TextStreamOBJ, Drv As Object
Dim path, name, Text_Path As String
Dim i As Integer
Set FileSystemOBJ = CreateObject("Scripting.FileSystemObject")
'既存パス (path) の末尾に名前 (name) を追加する
'単に文字列を結合するのと違うのは、
'path と name の間に \ が入ることです
path = FolderPath
name = "temp"
Range("B3") = FileSystemOBJ.BuildPath(path, name)
'フォルダの作成
FileSystemOBJ.CreateFolder (Range("B3"))
'ファイルを作成してTextStreamオブジェクトを取得
'object.CreateTextFile(filename[, overwrite[, unicode]])
Text_Path = FileSystemOBJ.BuildPath(path, "Sample.txt")
Set TextStreamOBJ = FileSystemOBJ.CreateTextFile(Text_Path)
TextStreamOBJ.WriteLine ("Hello, world!")
TextStreamOBJ.Close
'ドライブが存在するか確認する
'存在する場合は、True を 存在しない場合は、False を返します
Range("B6") = FileSystemOBJ.DriveExists("C")
'ファイルが存在するか確認する
'存在する場合は、True を 存在しない場合は、False を返します
Range("B7") = FileSystemOBJ.FileExists(Text_Path)
'フォルダが存在するか確認する
'存在する場合は、True を 存在しない場合は、False を返します
Range("B8") = FileSystemOBJ.FolderExists(Range("B3"))
'絶対パスを取得する
'"." は現在のカレントパスです
'ちなみに "../.." とすれば2つ上のパスになります
Range("B9") = FileSystemOBJ.GetAbsolutePathName(".")
'ファイルのベース名を取得
'ちなみにベース名とは、ファイル名の拡張子を除いた文字列です
Range("B10") = FileSystemOBJ.GetBaseName(Text_Path)
'ドライブ名を取得
Range("B11") = FileSystemOBJ.GetDriveName("C:\")
'ファイルの拡張子を取得
Range("B12") = FileSystemOBJ.GetExtensionName(Text_Path)
'ファイル名を取得
'パスからファイル名を取得する
Range("B13") = FileSystemOBJ.GetFileName(Text_Path)
'親フォルダのパスを取得
Range("B14") = FileSystemOBJ.GetParentFolderName(Text_Path)
'特別なフォルダを取得 GetSpecialFolder
Range("B15") = FileSystemOBJ.GetSpecialFolder(0)
'一時的に使用するランダムなファイル名を作成
'「rad6F6E6.tmp」こんな感じの名前が作成されます
Range("B16") = FileSystemOBJ.GetTempName
'利用できるすべてのドライブを取得
i = 17
For Each Drv In FileSystemOBJ.Drives
Range("B" & Format(i)) = Drv.DriveLetter
i = i + 1
Next Drv
End Sub
Function FolderPath() As String
Dim Shell As Object
Set Shell = CreateObject("Shell.Application") _
.BrowseForFolder(0, "フォルダを選択してください", 0, "C:\")
If Shell Is Nothing Then
FolderPath = ""
Else
FolderPath = Shell.Items.Item.path
End If
End Function
example32 サンプルです 。
