• ベストアンサー

エクセルから指定フォルダーのファイルを削除?

またまた お願いします。 エクセルで作成したシートを指定のフォルダー内にCSVで保存することが できましたが、逆にそれを削除するにはマクロやVBAでどう記述すればよいのでしょうか? エクセルヘルプみてもわかりませんでした。 お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • WWolf
  • ベストアンサー率26% (51/192)
回答No.1

こんにちは DOSコマンドでKILLを参考にされては如何でしょう? 頑張ってください。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 >逆にそれを削除するにはマクロや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)
回答No.3

こんなところへ質問せずとも 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)
回答No.2

#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 頑張ってください。

K-19
質問者

お礼

目からウロコですね ありがとうございました。 がんばります。

関連するQ&A