ファイルを削除します。
【関数化】 ファイルを削除
ファイルはゴミ箱にいかず削除されます。
' ------------------------------------------------------------
' 説明:ファイルを削除
' 引数:1:削除するファイル名
' 戻値:削除に成功した場合:True
' 削除に失敗した場合:False
' ------------------------------------------------------------
Function DeleteFile(file_name As String) As Boolean
On Error GoTo ErrorHandler
' ファイルを削除
Kill file_name
DeleteFile = True
Exit Function
ErrorHandler:
MsgBox "ファイル削除中にエラーが発生しました: " & Err.Description, vbExclamation
DeleteFile = False
End Function
【関数化】 ファイルを削除してゴミ箱に
VBAでゴミ箱に削除するには Win32APIの SHFileOperation 関数を利用します。
ファイルの先頭に記載するようにしてください。
Private Declare PtrSafe Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Private Type SHFILEOPSTRUCT
hWnd As LongPtr
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Long
hNameMappings As LongPtr
lpszProgressTitle As String
End Type
Const FO_DELETE = &H3
Const FOF_ALLOWUNDO = &H40
Const FOF_NOCONFIRMATION = &H10
' ------------------------------------------------------------
' 説明:ファイルを削除してボミ箱へ
' 引数:1:削除するファイル名
' 戻値:削除に成功した場合:0
' 削除に失敗した場合:0以外
' ------------------------------------------------------------
Function DeleteFileRecycle(file_name As String) As Long
Dim fileOp As SHFILEOPSTRUCT
fileOp.wFunc = FO_DELETE
fileOp.pFrom = file_name
fileOp.fFlags = FOF_ALLOWUNDO Or FOF_NOCONFIRMATION
DeleteFileRecycle = SHFileOperation(fileOp)
End Function


コメント