Eliminar archivo en VBA
- Eliminar archivo en VBA
- Eliminar un solo archivo en VBA
- Eliminar todos los archivos de texto en VBA
- Eliminar todos los archivos de Excel en VBA
- Eliminar una carpeta en VBA
Presentaremos diferentes métodos para eliminar archivos usando VBA con ejemplos.
Eliminar archivo en VBA
Es normal que todos los usuarios tengan archivos intermedios durante un proceso, pero esos archivos deben eliminarse una vez que finaliza el proceso. Por ejemplo, a menudo recibimos correos electrónicos con archivos adjuntos.
Estos archivos son beneficiosos para nosotros solo cuando los archivos son necesarios para trabajar.
Estos archivos deben eliminarse después de un tiempo, ya que ocupan espacio adicional en la computadora (o unidad) que puede reducir el rendimiento del sistema.
Si buscamos eliminar estos archivos adicionales manualmente, lleva tiempo. Uno puede incluso olvidarse de eliminar dichos archivos si decide eliminar archivos intermedios en más de una sesión.
Se pueden usar códigos VBA simples para eliminar estos archivos adicionales.
Varios códigos se ocupan de las diferentes metodologías para eliminar archivos. Algunos de los principales códigos son:
- Elimine un solo archivo usando VBA.
- Elimine todos los archivos de texto usando VBA.
- Elimine todos los archivos de Excel usando VBA.
- Elimine una carpeta completa usando VBA.
Eliminar un solo archivo en VBA
Hay dos métodos para eliminar un archivo de Excel. Una es la función Kill
, llamada FileSystemObject
.
Veamos un ejemplo y usemos la función Kill
para eliminar un solo archivo.
Sub DeleteFileWithKill()
Kill("D:/Test/testFile.xlsx")
End Sub
Antes de ejecutar el código:
Después de ejecutar el código:
Como puede ver en el ejemplo anterior, es bastante fácil eliminar un archivo usando la función matar
.
En el método FileSystemObject
, primero declaramos variables, creamos una función de objeto, asignamos la ruta para el archivo y luego usamos la función DeleteFile
. El código completo se muestra a continuación.
Sub DeleteFileWithFSO()
Dim FileSysObj
Dim FileToDel As String
Set FileSysObj = CreateObject("Scripting.FileSystemObject")
FileToDel = "D:\Test\testFile.xlsx"
FileSysObj.DeleteFile FileToDel, True
End Sub
Antes de ejecutar el método FileSystemObject
:
Después de ejecutar el método FileSystemObject
:
Si queremos verificar la existencia de un archivo y luego eliminarlo, el código VBA está debajo.
Sub DeleteFileAfterChecking()
Dim FileSysObj
Dim FileToDelete As String
Set FileSysObj = CreateObject("Scripting.FileSystemObject")
FileToDelete = "D:\Test\testFile.xlsx"
If FileSysObj.FileExists(FileToDelete) Then
FileSysObj.DeleteFile FileToDelete, True
MsgBox "File Deleted"
Else
MsgBox "There is no file with the name you provided!"
End If
End Sub
Producción:
Como puede ver en el ejemplo anterior, al usar FileSystemObject
, incluso podemos asegurarnos de eliminar el archivo si existe. Si no está presente, podemos mostrar un mensaje diciendo que el archivo no existe.
Eliminar todos los archivos de texto en VBA
También podemos usar VBA para borrar todos los archivos de ciertas extensiones como .txt
. Como se muestra a continuación, veamos un ejemplo e intentemos eliminar todos los archivos .txt
presentes en una determinada carpeta.
Sub DeleteTxtFile()
Kill "D:\Test\Dst\*.txt"
End Sub
Salida antes de ejecutar el código:
Salida después de ejecutar el código:
Eliminar todos los archivos de Excel en VBA
También podemos usar VBA para borrar todos los archivos de ciertas extensiones, como .xlsx
. Como se muestra a continuación, veamos un ejemplo e intentemos eliminar todos los archivos .xlsx
presentes en una determinada carpeta.
Sub DeleteXlFile()
Kill "D:\Test\Dst\*.xlsx"
End Sub
Salida antes de ejecutar el código:
Salida después de ejecutar el código:
Eliminar una carpeta en VBA
VBA proporciona una solución para eliminar una carpeta completa. Se utiliza una función llamada RmDir
para eliminar una carpeta completa.
Como se muestra a continuación, veamos un ejemplo e intentemos eliminar toda la carpeta.
Sub DeleteFolder()
RmDir "D:\Test\Dst\"
End Sub
Salida antes de ejecutar el código:
Salida después de ejecutar el código: