VBA FileSystemObject (FSO) - ¿Cómo acceder a FileSystemObject?

FileSystemObject de Excel VBA (FSO)

VBA FileSystemObject (FSO) funciona de manera similar a FileDialog, que se utiliza para obtener acceso a otros archivos de la computadora en la que estamos trabajando. También podemos editar estos archivos significa leer o escribir el archivo. Usando FSO podemos acceder a archivos, trabajar con ellos, modificar archivos y carpetas. FSO es la herramienta API importante a la que podemos acceder con VBA. Como parte del proyecto VBA, es posible que necesitemos acceder a algunas carpetas y archivos en nuestra computadora para hacer el trabajo.

Podemos hacer muchas tareas usando FSO como "para verificar si la carpeta está disponible o no", crear una nueva carpeta o archivos, cambiar el nombre de la carpeta o los archivos existentes, obtener la lista de todos los archivos en la carpeta y también los nombres de las subcarpetas. . Finalmente, podemos copiar archivos de una ubicación a otra.

Incluso hay otras funciones disponibles para trabajar con carpetas y archivos, FSO es el método más fácil para trabajar con carpetas y archivos manteniendo el código VBA limpio y ordenado.

Podemos acceder a cuatro tipos de Objetos con FileSystemObject. A continuación se muestran esos.

  1. Drive: Con este objeto, podemos verificar si existe o no el drive mencionado. Podemos obtener el nombre de la ruta, el tipo de propósito y el tamaño de la empresa.
  2. Carpeta: Este objeto nos permite comprobar si la carpeta en particular existe o no. Podemos crear, eliminar, modificar, copiar carpetas usando este objeto.
  3. Archivo: este objeto nos permite comprobar si el archivo en particular existe o no. Podemos crear, eliminar, modificar, copiar archivos usando este objeto VBA.
  4. Flujo de texto: este objeto nos permite crear o leer archivos de texto.

Todos los métodos anteriores tienen su método para trabajar. Según nuestros requisitos, podemos elegir el método de cada objeto.

¿Cómo habilitar FileSystemObject?

No es fácilmente accesible en VBA. Dado que acceder a archivos y carpetas es una tarea externa de Excel, necesitamos habilitar FileSystemObject. Para animar, siga los pasos a continuación.

Paso # 1: Vaya a Herramientas> Referencias.

Paso # 2: seleccione la opción 'Microsoft Scripting Runtime'

Desplácese hacia abajo y seleccione la opción 'Microsoft Scripting Runtime'. Después de elegir las opciones, haga clic en Aceptar.

Ahora podemos acceder al FileSystemObject (FSO) en VBA.

Crear una instancia de FileSystemObject

Una vez que la opción 'Microsoft Scripting Runtime' está habilitada desde la biblioteca de objetos, necesitamos crear un objeto de sistema de archivos (FSO) a través de la codificación.

Para crear la instancia, primero declare la variable como FileSystemObject.

Como podemos ver, FileSystemObject aparece en la lista IntelliSense en VBA. Esto no estaría disponible antes de que habilitemos el 'Microsoft Scripting Runtime'.

Dado que FSO es un objeto, debemos configurarlo para crear una nueva instancia.

Ahora podemos acceder a todas las opciones de FSO (FileSystemObject).

Ejemplos para usar VBA FileSystemObject

Ejemplo n. ° 1 - Encuentre el espacio total en disco

El siguiente código le dará el espacio total de la unidad.

Código:

Sub FSO_Example1 () Dim MyFirstFSO como FileSystemObject Set MyFirstFSO = New FileSystemObject Dim DriveName como Drive Dim DriveSpace como Double Set DriveName = MyFirstFSO.GetDrive ("C:") 'Create new drive object DriveSpace = DriveName.FreeSpace' Esto obtendrá el espacio libre de la unidad "C" DriveSpace = DriveSpace / 1073741824 'Esto convertirá el espacio libre en GB DriveSpace = Round (DriveSpace, 2)' Redondea el espacio total MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB" End Sub

Desglose del código.

Primero, creamos una instancia de FSO.

Atenuar MyFirstFSO como FileSystemObject Establecer MyFirstFSO = New FileSystemObject

A continuación, hemos declarado dos variables.

Atenuar DriveName como unidad Atenuar DriveSpace como doble

Dado que DriveName es una variable de objeto, debemos establecer esto en FSO, uno de los métodos FSO. Como necesitamos la característica de la unidad, usamos la opción Obtener unidad y mencionamos el nombre de la unidad.

Establecer DriveName = MyFirstFSO.GetDrive ("C:")

Para otra variable, DriveSpace, asignaremos el método de espacio libre de la unidad a la que estamos accediendo.

DriveSpace = DriveName.FreeSpace

A partir de ahora, la ecuación anterior nos puede dar espacio libre en la unidad "C". Entonces, para mostrar el resultado en GB, hemos dividido el espacio abierto por 1073741824

DriveSpace = DriveSpace / 1073741824

A continuación, redondearemos el número.

DriveSpace = Redondo (DriveSpace, 2)

Finalmente, muestre el resultado en el cuadro de mensaje.

MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB"

When we run the code manually or through shortcut key F5, then in the message box, we will get the free space of the drive “C.”

So, in my computer Drive C has 216.19 GB of free space memory.

Example #2 - Check Whether the Folder Exists or Not

To check whether the particular folder exists or not, use the below code.

If the mentioned folder is available, it will show us the message box as “The Mentioned Folder is Available.” If not, it will show the VBA message box as “The Mentioned Folder is Not Available.”

Code:

Sub FSO_Example2() Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FolderExists("D:Excel FilesVBAVBA Files") Then MsgBox "The Mentioned Folder is Available" Else MsgBox "The Mentioned Folder is Not Available" End If End Sub

Ejecute este código a través de la tecla de acceso directo de Excel F5 o manualmente, luego vea el resultado.

Ejemplo n. ° 3: comprobar si el archivo existe o no

El siguiente código comprobará si el archivo mencionado está disponible o no.

Código:

Sub FSO_Example3 () Dim MyFirstFSO como FileSystemObject Establecer MyFirstFSO = New FileSystemObject If MyFirstFSO.FileExists ("D: Archivos de Excel VBA Archivos VBA Testing File.xlsm") Entonces MsgBox "El archivo mencionado está disponible". Else MsgBox "El archivo mencionado está disponible" El archivo no está disponible "End If End Sub

Ejecute este código manualmente o usando la tecla F5, luego vea el resultado.

Articulos interesantes...