Introducción a FileSystemObject

¿Por qué usamos VBA? Usamos VBA para automatizar nuestras tareas. Normalmente en Excel solo trabajamos con datos presentes en filas y columnas en forma de tablas o algo así. Pero, ¿qué pasa con los archivos y carpetas que no son parte de Excel? ¿Qué sucede si necesitamos usar esos datos de cualquier archivo? ¿Cómo accedemos? Aquí es donde FileSystemObject es útil.

FileSystemObject o FSO se utiliza para acceder al sistema de archivos desde nuestra computadora. Con esto podemos tener acceso a todas las carpetas de archivos que tenemos presentes en la computadora en la que estamos trabajando. FSO es básicamente una herramienta API que se utiliza para acceder a otros archivos. Ahora, esto no está presente de manera predeterminada en VBA, lo cual aprenderemos más adelante en este artículo. Primero, comprendamos qué es FSO. Anteriormente en VBA, teníamos la función DIR que se refería para acceder a otros archivos y carpetas desde una computadora. La codificación para la función DIR fue muy compleja para trabajar. Pero en FSO las cosas son diferentes.

Ahora hay cuatro tipos de objetos a los que podemos acceder por FSO y son los siguientes:

  • Unidad: que se usa para tener acceso a una unidad mencionada.
  • Carpeta: se utiliza para tener acceso a una carpeta mencionada.
  • Archivo: se usa para tener acceso a un archivo mencionado.
  • Flujo de texto: con este objeto, podemos leer o escribir un archivo de texto.

Cada uno de los objetos enumerados anteriormente tiene diferentes métodos para usarlos. Por ejemplo, si queremos copiar un archivo, usaremos el método CopyFile o eliminaremos una carpeta, usaremos el método DeleteFolder, etc.

Como he discutido anteriormente, FSO no está presente por defecto en VBA, hay dos métodos para habilitar FSO en VBA.

  • El primer método es mediante el establecimiento de la referencia.
  • El segundo método es referirse a la biblioteca desde el código.

Si bien el segundo método es más complejo, siempre se recomienda utilizar el primer método, que es muy simple. Sigamos estos pasos básicos.

En VBA, vaya a la pestaña Herramientas y luego vaya a Referencias,

Aparecerá un cuadro de asistente, seleccione Microsoft Scripting Runtime como se muestra a continuación y presione OK.

Ahora podemos acceder a FSO en VBA. Ahora usemos esto a través de algunos ejemplos y aprendamos al respecto.

¿Cómo usar VBA FileSystemObject en Excel?

A continuación se muestran los diferentes ejemplos para usar la función VBA FileSystemObject en Excel

Puede descargar esta plantilla de Excel VBA FileSystemObject aquí - Plantilla de VBA FileSystemObject Excel

VBA FileSystemObject - Ejemplo # 1

Antes de comenzar a usar FSO en Vba, primero aprendamos cómo crear instancias en VBA.

Paso 1: en el submódulo, cree un subprocedimiento,

Código:

 Sub Newfso () End Sub 

Paso 2: declare una variable como FileSystemObject como se muestra a continuación,

Código:

 Sub Newfso () Dim A como FileSystemObject End Sub 

Paso 3: Ahora necesitamos crear una instancia ya que FSO es un objeto usando la instrucción SET como se muestra a continuación,

Código:

 Sub Newfso () Dim A como FileSystemObject Set A = New FileSystemObject End Sub 

Ahora, esta declaración nos permitirá crear o modificar archivos o carpetas usando FSO.

Paso 4: Ahora podemos ver la función IntelliSense después de habilitar FSO. Utilice el operador de punto de la siguiente manera,

Código:

 Sub Newfso () Dim A como FileSystemObject Set A = New FileSystemObject A. End Sub 

Nos dio varias opciones usando la función IntelliSense. Así es como creamos instancias usando FSO.

VBA FileSystemObject - Ejemplo # 2

Ahora, desde que creamos una instancia en el Ejemplo 1, avancemos para usarla y verifiquemos si existe un archivo o carpeta o no.

Paso 1: Después de haber creado un nuevo FileSystemObject, use la instrucción IF para determinar si una carpeta existe o no de la siguiente manera,

Código:

 Sub Newfso () Dim A como FileSystemObject Set A = New FileSystemObject If A.FolderExists ("C: \ Users \ Public \ Project") Entonces End Sub 

Paso 2: Si la carpeta existe, queremos mostrar que existe la carpeta y si no, queremos que muestre esa carpeta no existe.

Código:

 Sub Newfso () Dim A como FileSystemObject Set A = New FileSystemObject If A.FolderExists ("C: \ Users \ Public \ Project") Entonces MsgBox "La carpeta existe" Else MsgBox "La carpeta no existe" End If End Sub 

Paso 3: Ahora ejecute el código anterior y vea el resultado de la siguiente manera,

La carpeta existe en mi escritorio, por lo que recibimos el mensaje de que esa carpeta existe.

VBA FileSystemObject - Ejemplo # 3

Ahora, desde que discutimos que FSO tiene varios objetos, como unidades. Averigüemos cuánto espacio tengo disponible en mi unidad E.

Paso 1: Comience por otro subprocedimiento de la siguiente manera,

Código:

 Sub Newfso1 () End Sub 

Paso 2: Ahora declare una variable como FileSystemObject y configúrela en una nueva instancia de la siguiente manera,

Código:

 Sub Newfso1 () Dim A como FileSystemObject Set A = New FileSystemObject End Sub 

Paso 3: Ahora, como estamos usando la propiedad Drive, declaramos una variable como tipo de Drive y una variable como doble para mantener los datos para el espacio de la siguiente manera,

Código:

 Sub Newfso1 () Dim A como FileSystemObject Set A = New FileSystemObject Dim D como Drive, Dspace como Double End Sub 

Paso 4: ahora creemos un nuevo objeto de unidad como se muestra a continuación,

Código:

 Sub Newfso1 () Dim A como FileSystemObject Set A = New FileSystemObject Dim D como Drive, Dspace As Double Set D = A.GetDrive ("C:") End Sub 

Este es uno de los métodos FSO que estamos utilizando para acceder al disco.

Paso 5: Utilizaremos otro método FSO para obtener el espacio libre del disco y almacenarlo en la variable definida para almacenar el espacio del disco,

Código:

 Sub Newfso1 () Dim A como FileSystemObject Set A = New FileSystemObject Dim D como Drive, Dspace As Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace End Sub 

Paso 6: Ahora calculemos el espacio en GB de la siguiente manera,

Código:

 Sub Newfso1 () Dim A como FileSystemObject Set A = New FileSystemObject Dim D como Drive, Dspace As Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) End Sub 

Paso 7: ahora muestre el valor almacenado en el espacio de la unidad utilizando la función msgbox de la siguiente manera,

Código:

 Sub Newfso1 () Dim A como FileSystemObject Set A = New FileSystemObject Dim D como Drive, Dspace As Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) MsgBox "The Drive" & D & "has" & Dspace & "GB free Space" End Sub 

Paso 8: Ejecute el código anterior para descubrir el resultado a continuación,

VBA FileSystemObject - Ejemplo # 4

Ahora permítanos crear una nueva carpeta en una ubicación específica usando FSO.

Paso 1: Nuevamente, comencemos con otro subproceso de la siguiente manera,

Código:

 Sub Newfso2 () End Sub 

Paso 2: sigamos los mismos pasos y creemos una instancia de la siguiente manera,

Código:

 Sub Newfso2 () Dim A como FileSystemObject Set A = New FileSystemObject End Sub 

Paso 3: Ahora usaremos el método Crear carpeta para crear una nueva carpeta en una ubicación específica,

Código:

 Sub Newfso2 () Dim A como FileSystemObject Set A = New FileSystemObject A.CreateFolder ("C: \ Users \ Public \ Project \ FSOExample") End Sub 

Paso 4: Ejecute el código anterior y vea el resultado en el escritorio de la siguiente manera,

Hemos creado con éxito una nueva carpeta en la ubicación especificada.

Cosas para recordar en VBA FileSystemObject

  • FSO es una herramienta de aplicación API.
  • FSO no está disponible por defecto en VBA.
  • Con FSO podemos crear, modificar o leer archivos y carpetas en una computadora.
  • También podemos usar FSO para nuestras unidades de red.

Artículos recomendados

Esta es una guía para VBA FileSystemObject. Aquí discutimos cómo usar VBA FileSystemObject en Excel junto con algunos ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. Guía completa del libro de trabajo de VBA
  2. Función INDIRECTA en Excel
  3. Función de conteo de VBA
  4. Función Excel XOR

Categoría: