アプリケーションとしてのVBA Excel(エクセル) VBA の役立つ Tips の紹介

アプリケーションとしてのVBA

ファイルシステムオブジェクトで利用できる メソッド・プロパティ

ファイルシステムオブジェクトで利用できる メソッド・プロパティ


  ファイルシステムオブジェクトのメソッドとプロパティを一覧にまとめました。

内容メソッド・プロパティ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 サンプルです 。

Copy (C) 2005   アプリケーションとしてのVBA   All Rights Reserved.