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

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

オブジェクトを使用した File / Folder削除

オブジェクトを使用した File / Folder削除


  FileオブジェクトやFolderオブジェクトを使用して削除をする方法を紹介します。

  Deleteメソッドの構文は
  
  object.Delete [force]
  
  です。
  
  force に True を設定することで読み取り専用のファイルやフォルダを削除できます。
  省略すると False になります。
  


Sub FileDelete()

    Dim FileType, Prompt As String
    Dim File_Object As Object
    Dim FileNamePath As Variant
    
    FileType = "すべての ファイル (*.*),*.*"
    Prompt = "File を選択してください"
    '操作したいファイルのパスを取得します
    FileNamePath = SelectFileNamePath(FileType, Prompt)

    If FileNamePath = False Then    'キャンセルボタンが押された
        End
    End If

    'ファイルオブジェクトを取得
    Set File_Object = CreateObject _
              ("Scripting.FileSystemObject").GetFile(FileNamePath)

    'ファイルの削除
    File_Object.Delete

End Sub

Sub FolderDelete()

    Dim FolderSpec As String
    Dim Folder_Object As Object
    Dim FileNamePath As Variant
    

    'Folder を選択します
    FolderSpec = FolderPath
    
    'キャンセルの場合は終了します
    If FolderSpec = "" Then
        End
    End If


    'フォルダオブジェクトを取得
    Set Folder_Object = CreateObject _
              ("Scripting.FileSystemObject").GetFolder(FolderSpec)

    
    'フォルダの削除
    Folder_Object.Delete
    
End Sub

Function SelectFileNamePath(FileType, Prompt) As Variant
  SelectFileNamePath = Application.GetOpenFilename(FileType, , Prompt)
End Function

Function FolderPath() As String
    
    Dim Shell As Object
    
    Set Shell = CreateObject("Shell.Application"). _
    BrowseForFolder(0, "フォルダを選択してください", 0, "デスクトップ")
    
    If Shell Is Nothing Then
        FolderPath = ""
    Else
        FolderPath = Shell.Items.Item.Path
    End If

End Function


example33 をダウンロードして動作を確認してください。


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