Já tentou apagar um arquivo externo à sua aplicação, talvez uma planilha ou um arquivo texto?
Pense, como posso excluir um arquivo?
Delete Files Via Vba
Delete Text File
Delete a folder and all subfolders and files
Delete files in a folder VBA
Deleting a file in VBA
How remove file
How to delete files using VBA
How to use VBA to delete files
I need to copy, rename and delete files in a folder
Macro to delete all files
Move and Delete files and folders
Remove Files
Poderia basicamente usar o comando Kill, mas um programador preocupado precisa permitir a possibilidade de existir um arquivo que está sendo usado somente como leitura, eis a função para você:
DeleteFile
("Bernardes_Dashboard_Results.txt")
Sub DeleteFile(ByVal FileToDelete As String)
If FileExists(FileToDelete) Then 'See above
SetAttr FileToDelete, vbNormal
Kill FileToDelete
End If
End Sub
Não se esqueça da função que checa a existência do arquivo:
Function FileExists(ByVal FileToTest As String) As Boolean
Let FileExists = (Dir(FileToTest) <> "")
End Function
Ahhh, você pode definir uma referência para a biblioteca Scripting.Runtime e depois usar o FileSystemObject, este tem dois métodos DeleteFile e FileExists.
Não vou esconder que temos outras opções:
Let nTest = Dir(filename)
If not nTest="" then
Kill(Filename)
end if
O código a seguir pode ser usado para testar a existência de um arquivo, e depois excluí-lo:
Dim aFile As String
Let nFile = "c:\Bernardes_Dashboard_Results.txt"
If Len(Dir$(nFile)) > 0 Then
Kill nFile
End If
Estava me segurando, mas preciso avisar-lhe quanto a não permitir que o código retorne uma mensagem de erro do tipo "Descupe-me, mas não existe nenhum código para apagar", então coloque também algo como o mostrado abaixo:
On Error Resume Next
Kill "
c:\Bernardes_Dashboard_Results.txt
"
On Error Goto 0
Return Len(Dir$(aFile)) > 0
As opções não param. Aqui está um método simples de apagar uma pasta e todos os arquivos e subpastas. Ele usa o File System Object (objeto sistema de arquivos).
Para usá-lo, você terá que definir uma referência para o Microsoft Scripting Runtime geralmente encontrada em C:\WINDOWS\system32\scrrun.dll.
Sub DeleteAllFolders(FolderPath As String)
Dim fso As Scripting.FileSystemObject
Set fso = New Scripting.FileSystemObject
On Error Resume Next
fso.DeleteFolder (FolderPath)
Set fso = Nothing
End Sub
O método fso.DeleteFolder não pode retirar a barra à direita ("\") do path, por isso precisamos removê-la quando aparecer.
Function CorrectPath(FolderPath As String) As String
Let FolderPath = Trim(FolderPath)
If Right(FolderPath, 1) = "\" Then
Let CorrectPath = Left(FolderPath, Len(FolderPath) - 1)
Else
Let CorrectPath = FolderPath
End If
End Function
Referências: MSDN
Tag: Bernardes, MS, Microsoft, Office, files, arquivo
, archive,
deletar, apagar, excluir, kill
André Luiz Bernardes
A&A® - Work smart, not hard.
como limpar pastas do outlook com o vba? pastas não padrão (caixa de entrada, etc)
ResponderExcluir