Eliminar archivo en VBA

Iqra Hasnain 21 junio 2023
  1. Eliminar archivo en VBA
  2. Eliminar un solo archivo en VBA
  3. Eliminar todos los archivos de texto en VBA
  4. Eliminar todos los archivos de Excel en VBA
  5. Eliminar una carpeta en VBA
Eliminar archivo 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:

  1. Elimine un solo archivo usando VBA.
  2. Elimine todos los archivos de texto usando VBA.
  3. Elimine todos los archivos de Excel usando VBA.
  4. 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:

antes de usar la función de matar en vba para eliminar un solo archivo

Después de ejecutar el código:

después de usar la función de eliminación en vba para eliminar un solo archivo

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:

antes de usar la función de matar en vba para eliminar un solo archivo

Después de ejecutar el método FileSystemObject:

después de usar la función de eliminación en vba para eliminar un solo archivo

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:

Eliminar un archivo en vba después de verificar si existe o no

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:

antes de usar la función de eliminación en vba para eliminar todos los archivos de texto

Salida después de ejecutar el código:

después de usar la función de eliminación en vba para eliminar todos los archivos de texto

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:

después de usar la función de eliminación en vba para eliminar todos los archivos de texto

Salida después de ejecutar el código:

después de usar la función de eliminación en vba para eliminar todos los archivos de Excel

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:

después de usar la función de eliminación en vba para eliminar un solo archivo

Salida después de ejecutar el código:

después de eliminar una carpeta en vba

Artículo relacionado - VBA File