- ベストアンサー
エクセルから指定フォルダーのファイルを削除?
またまた お願いします。 エクセルで作成したシートを指定のフォルダー内にCSVで保存することが できましたが、逆にそれを削除するにはマクロやVBAでどう記述すればよいのでしょうか? エクセルヘルプみてもわかりませんでした。 お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは DOSコマンドでKILLを参考にされては如何でしょう? 頑張ってください。
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >逆にそれを削除するにはマクロやVBAでどう記述すればよいのでしょうか? VBA(VB)では、ファイル削除は、Kill が基本ですが、エキスプローラを立ち上げてファイル選択をして削除でもよいのかもしれません。 以下は、MultiSelect で、ファイルの複数選択が可能です。 -------------------------------------------------------------------- Sub DeleFiles() Dim orgFol As String Dim buf As String Dim Files As Variant Dim fn As Variant Dim i As Long orgFol = CurDir Const FIXFOLDER As String = _ "C:\TestFolder\" If Dir(FIXFOLDER, vbDirectory) = "" Then MsgBox FIXFOLDER & vbCrLf & "フォルダがありません", vbInformation: Exit Sub ChDir FIXFOLDER Files = Application.GetOpenFilename("CSV ファイル(*.csv),*.csv", , "ファイルの削除", , _ True) If VarType(Files) = vbBoolean Then GoTo EndLine buf = Replace(Join(Files, ", "), CurDir & "\", "", , , vbTextCompare) If MsgBox(buf & vbCrLf & _ "選択したファイルを削除してよろしいですか?", vbInformation + vbOKCancel) = vbCancel Then GoTo EndLine End If For Each fn In Files Kill fn i = i + 1 Next fn MsgBox CStr(i) & " 個ファイルを削除しました。", vbInformation EndLine: ChDir orgFol End Sub 単に、ワイルドカードなら、難しいことを考えなくても、Shell を使って、以下のようにすればよいです。 Sub DeleWildCard() Dim ret As Long Const FIXFOLDER As String = _ """C:\TestFolder\""" ret = Shell("cmd /c del " & FIXFOLDER & "*.csv") '本来はここに、if ret=0 で異常を検出は出来るけれど無意味です End Sub
- imogasi
- ベストアンサー率27% (4737/17070)
こんなところへ質問せずとも WEBで「ファイル 削除 VBA」で照会すると 第1に http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_100.html が出て Kill DeleteFile(FSOの場合) が載っている。 WEBが便利か、この質問コーナーがメリットがあるか、感覚を養うこと。
- WWolf
- ベストアンサー率26% (51/192)
#1です。追加でFSOを用いた削除サンプル Sub sample()’フォルダ内ファイル全削除 Const delfile = "C:\フォルダ\*.*" '削除フォルダ Dim oFSO As FileSystemObject Set oFSO = New FileSystemObject ' FSOでのファイル削除 oFSO.DeleteFile delfile, True Set oFSO = Nothing End Sub 頑張ってください。
お礼
目からウロコですね ありがとうございました。 がんばります。