¿Cómo usar la declaración Open en VBA?

En VBA (Visual Basic for Applications), la declaración `Open` se utiliza para abrir un archivo con el fin de leerlo, escribir en él o modificarlo. La sintaxis básica de la declaración `Open` es la siguiente:

Open pathname For mode [Access access] [lock] As [#]filenumber [Len=reclength]

A continuación te explico cada parte de esta sintaxis:

  • `pathname`: Esta es una cadena que especifica la ruta completa al archivo que deseas abrir.
  • `mode`: Especifica el modo en el que deseas abrir el archivo. Los modos comunes son:
    • `Append`: Abre el archivo para añadir información al final del mismo.
    • `Binary`: Abre el archivo en modo binario.
    • `Input`: Abre el archivo para leer.
    • `Output`: Abre el archivo para escribir. Si el archivo ya existe, se sobrescribirá.
    • `Random`: Abre el archivo para acceso aleatorio.
  • `Access access`: Opcional. Especifica el tipo de acceso permitido. Los valores pueden ser `Read`, `Write` o `Read Write`.
  • `lock`: Opcional. Especifica el tipo de bloqueo que se coloca en el archivo. Los valores pueden ser `Shared`, `Lock Read`, `Lock Write`, o `Lock Read Write`.
  • `filenumber`: Requiere un número de archivo, que debe ser un número entero sin signo. Puedes usar la función `FreeFile` para obtener un número de archivo disponible.
  • `Len=reclength`: Opcional. Especifica el tamaño de registros al trabajar con archivos de acceso aleatorio.

Ejemplo Práctico

Aquí te dejo un ejemplo sencillo de cómo abrir un archivo para escribir, escribir en él y luego cerrarlo:

Sub EscribirEnArchivo()
    Dim numArchivo As Integer
    Dim rutaArchivo As String
    rutaArchivo = "C:rutadelarchivo.txt"
    
    ' Obtener un número de archivo libre
    numArchivo = FreeFile
    
    ' Abrir el archivo en modo Output para escritura
    Open rutaArchivo For Output As #numArchivo
    
    ' Escribir en el archivo
    Print #numArchivo, "Esta es una línea de texto"
    Print #numArchivo, "Esta es otra línea de texto"
    
    ' Cerrar el archivo
    Close #numArchivo
End Sub

En este ejemplo, el archivo especificado en `rutaArchivo` se abre para escritura, y luego se escribe un par de líneas de texto. Finalmente, el archivo se cierra con la instrucción `Close`.

Recuerda que trabajar con archivos requiere manejar errores potenciales, como los casos en los que el archivo no existe o no se puede abrir, por lo que podría ser útil incluir manejo de errores (`On Error`) según el contexto de tu aplicación.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project