Articles

VBA FileSystemObject (FSO)

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) funciona de manera similar a FileDialog, utilizado para obtener acceso a otros archivos de la computadora 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 importante herramienta API a la que podemos acceder con VBA. Como parte del proyecto de VBA, es posible que necesitemos acceder a algunas carpetas y archivos en nuestra computadora para hacer el trabajo.

Podemos hacer muchas tareas mediante el uso de FSO como «para comprobar si la carpeta está disponible o no,» Crear una nueva carpeta o archivos, cambiar el nombre de la carpeta o archivos existentes, obtener la lista de todos los archivos en la carpeta, y también los nombres de las subcarpetas. Por último, podemos copiar archivos de una ubicación a otra.

Aunque hay otras funciones disponibles para trabajar con carpetas y archivos, FSO es el método más sencillo para trabajar con carpetas y archivos manteniendo el código VBA ordenado y recto.

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

  1. Drive: Usando este objeto, podemos comprobar si la unidad mencionada existe o no. 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 concreta existe o no. Podemos crear, eliminar, modificar, copiar carpetas utilizando este objeto.
  3. Archivo: Este objeto nos permite comprobar si el archivo particular existe o no. Podemos crear, eliminar, modificar, copiar archivos utilizando este objeto VBA.
  4. Text Stream: Este objeto nos permite crear o leer archivos de texto.

Todos los métodos anteriores tienen su método para trabajar. En base a nuestros requerimientos, podemos elegir el método de cada objeto.

¿Cómo habilitar FileSystemObject?

No es fácilmente accesible en VBA. Dado que el acceso a los archivos y carpetas es la tarea exterior de Excel, tenemos que habilitar el FileSystemObject. Para animar, siga los siguientes pasos.

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 File System Object (FSO) a través de la codificación.

Curso popular en esta categoría

Formación VBA (3 Cursos, 12+ Proyectos)
4.6 (247 valoraciones) 3 Cursos | 12 Proyectos Prácticos | 43+ Horas | Acceso completo de por vida | Certificado de Finalización

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

Como podemos ver, FileSystemObject aparece en la lista de IntelliSense en VBA. Esto no habría disponible antes de que habilitamos el ‘Microsoft Scripting Runtime.’

Como FSO es un objeto, tenemos que configurarlo para crear una nueva instancia.

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

Ejemplos para utilizar VBA FileSystemObject

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

Ejemplo #1 – Encontrar el espacio total de la unidad

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

Código:

Sub FSO_Example1() Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject Dim DriveName As Drive Dim DriveSpace As Double Set DriveName = MyFirstFSO.GetDrive("C:") 'Create new drive object DriveSpace = DriveName.FreeSpace 'This will get the free space of the drive "C" DriveSpace = DriveSpace / 1073741824 'This will convert the free space to GB DriveSpace = Round(DriveSpace, 2) 'Round the total space MsgBox "Drive " & DriveName & " has " & DriveSpace & "GB"End Sub

Desglose del código.

Primero, creamos una instancia de FSO.

Dim MyFirstFSO As FileSystemObjectSet MyFirstFSO = New FileSystemObject

A continuación, hemos declarado dos variables.

Dim DriveName As DriveDim DriveSpace As Double

Dado que DriveName es una variable Object, necesitamos establecerla en FSO una del método FSO. Como necesitamos la característica de la unidad, hemos utilizado la opción Get Drive y mencionamos el nombre de la unidad.

Set 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 puede obtener el espacio libre de la unidad «C». Así que para mostrar el resultado en GB, hemos dividido el espacio libre por 1073741824

DriveSpace = DriveSpace / 1073741824

A continuación, vamos a redondear el número.

DriveSpace = Round(DriveSpace, 2)

Por último, mostrar el resultado en el cuadro de mensajes.

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

Cuando ejecutamos el código manualmente o a través de la tecla de acceso directo F5, entonces en el cuadro de mensajes, obtendremos el espacio libre de la unidad «C.»

Así, en mi ordenador la unidad C tiene 216,19 GB de espacio libre de memoria.

Ejemplo #2 – Comprobar si la carpeta existe o no

Para comprobar si la carpeta concreta existe o no, utilice el siguiente código.

Si la carpeta mencionada está disponible, nos mostrará el cuadro de mensaje como «La carpeta mencionada está disponible». Si no, nos mostrará el cuadro de mensaje de VBA como «La carpeta mencionada no está disponible».

Código:

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

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

Ejemplo #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 As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FileExists("D:\Excel Files\VBA\VBA Files\Testing File.xlsm") Then MsgBox "The Mentioned File is Available" Else MsgBox "The Mentioned File is Not Available" End IfEnd Sub

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

Artículos recomendados

Esta ha sido una guía de VBA FileSystemObject. Aquí aprendemos a utilizar FileSystemObject (FSO) en VBA para acceder a archivos y carpetas del ordenador y ejemplos prácticos y una plantilla de excel descargable. A continuación puedes encontrar algunos artículos útiles de excel VBA –

  • Palabra clave ME en VBA
  • Función StrComp en VBA
  • StrConv Función en VBA
  • VBA IIF
0 Acciones

Formación en VBA (3 Cursos, 12+ Proyectos)

  • 3 Cursos
  • 12 Proyectos Prácticos
  • 43+ Horas
  • Acceso completo de por vida
  • Certificado de Finalización

APRENDE MÁS >>

Dejar una respuesta

Tu dirección de correo electrónico no será publicada.