VBA~フォルダを消去しよう~Excel
フォルダを消去したい時はFileSystemObjectオブジェクトのDeleteFolderメソッドを使います。
基本
下のコードを実行するとCドライブのサンプルというフォルダが消去されます。
Sub test1() Dim objFSO As Object Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.DeleteFolder "C:\サンプル" End Sub
エラー回避(指定したフォルダがない場合)
指定したフォルダがない場合はエラーが表示されます。
メッセージを表示するようにするとエラーが回避できます。下のコードはIf文の条件式にDir関数を使っています。Dir関数はDir(パス,属性)で属性に確認したいファイルの属性に対応した定数を指定します。フォルダの場合はvbDirectoryを指定します。パスに確認したいフォルダのパスを指定しフォルダがあれば、フォルダ名を返し、なければ長さ0の文字列""を返します。今回の場合はフォルダがない場合にメッセージを表示するので条件式はDir(FolderPath,vbDirectory) = ""になり、これを満たした場合にメッセージが表示されExit Subででコードが終了します。。フォルダがある場合はエラー回避は必要ないのでIfとEnd Ifの間に書かれたコードは実行しないのでExit Subは実行せずに最後に書かれているobjFSO.DeleteFolder FolderPathを実行しフォルダを消去します。
Sub test2() Dim objFSO As Object Set objFSO = CreateObject("Scripting.FileSystemObject") Dim FolderPath As String FolderPath = "C:\サンプル" If Dir(FolderPath, vbDirectory) = "" Then MsgBox "フォルダが存在しません" Exit Sub End If objFSO.DeleteFolder FolderPath End Sub