Como deletar um arquivo usando vba no excel?
Para excluir um arquivo Excel de uma pasta, você pode usar dois métodos diferentes. O primeiro método é a instrução “Kill”, que usa o caminho do arquivo para fazer referência ao arquivo que você deseja excluir. O segundo método é o objeto FileSystemObject que possui um método associado para excluir um arquivo.
Para usar esses códigos, acesse o VBE (Editor de Código) na aba do desenvolvedor.
Exclua um arquivo usando VBA (função Kill)
O recurso Kill ajuda a excluir um único arquivo ou vários arquivos e usar curingas para excluir vários arquivos. Abaixo está o código de uma linha que exclui o arquivo da pasta que tenho na área de trabalho.
Kill "C:UsersDellDesktopSample Datafile-one.xlsx"
Este código mostrará um erro se a pasta de trabalho que você especificou para excluir não existir.
Links úteis: Executar uma macro – Gravador de macro – Editor Visual Basic – Manual pessoal de macros
Exclua todos os arquivos de uma pasta usando VBA
E se quiser excluir todos os arquivos que você possui em uma pasta, você pode usar um curinga.
Kill "C:UsersDellDesktopSample Data*.xl*"
Exclua um arquivo usando FileSystemObject (Object)
O objeto do sistema de arquivos permite acessar o sistema de arquivos do computador. Você pode aprender mais aqui, mas agora vamos escrever um código para excluir um arquivo.
- Primeiro, você precisa declarar as variáveis a serem usadas no código como Binder e FileSystemObject.
- Depois disso, use a função create object para retornar o FileSystemObject atribuindo-o à variável FSO.
- Em seguida, atribua o caminho à variável “myFile” para navegar até o arquivo que deseja excluir.
- Ao final, use o método “DeleteFile” (veja isto) para deletar o arquivo.
Código completo
Sub vba_delete_file() Dim FSO Dim myFile As String Set FSO = CreateObject("Scripting.FileSystemObject") myFile = "C:UsersDellDesktopSample Datafile1.xlsx" FSO.DeleteFile myFile, True End Sub
Digamos que você precise escrever algum código que possa verificar um arquivo (existe ou não) e depois excluí-lo. Aqui está o código que você precisa.
Sub vba_delete_file() Dim FSO Dim myFile As String Set FSO = CreateObject("Scripting.FileSystemObject") myFile = "C:UsersDellDesktopSample Datafile1.xlsx" If FSO.FileExists(myFile) Then FSO.DeleteFile myFile, True MsgBox "Deleted" Else MsgBox "There's no workbook with this name." End If End Sub