¿Cómo usar la función FileAttr en VBA?

La función `FileAttr` en VBA (Visual Basic for Applications) se utiliza para obtener información sobre los archivos abiertos mediante la instrucción `Open`. Con `FileAttr`, puedes determinar el modo en el que fue abierto el archivo (input, output, random, etc.) así como si es un archivo binario o de texto.

Sin embargo, es importante mencionar que `FileAttr` es una función de VBA que está considerada obsoleta y su uso no se recomienda para el desarrollo de nuevas aplicaciones. En su lugar, se recomienda utilizar objetos y métodos más modernos, como la clase `FileSystemObject` del modelo de objetos del Microsoft Scripting Runtime.

A continuación te muestro cómo se usaba la función `FileAttr` en VBA:

Sub EjemploFileAttr()
    Dim intFileNumber As Integer
    Dim intFileMode As Integer
    
    ' Abrir un archivo para lectura (Input)
    intFileNumber = FreeFile
    Open "C:miArchivo.txt" For Input As #intFileNumber
    
    ' Usar FileAttr para obtener el modo en que el archivo fue abierto
    intFileMode = FileAttr(intFileNumber, 2) ' 2 corresponde al argumento para obtener el modo de acceso
    
    ' Verificar el modo de acceso
    Select Case intFileMode
        Case 1
            Debug.Print "El archivo fue abierto en modo Input."
        Case 2
            Debug.Print "El archivo fue abierto en modo Output."
        Case 8
            Debug.Print "El archivo fue abierto en modo Append."
        ' ... añadir casos para otros modos si es necesario
        Case Else
            Debug.Print "El archivo fue abierto en un modo no determinado."
    End Select
    
    ' Cerrar el archivo
    Close #intFileNumber
End Sub

En el ejemplo anterior, FileAttr recibe dos argumentos:

  • El primer argumento es el número de archivo (file number), que fue obtenido usando la función `FreeFile` y asignado al archivo al abrirlo con la instrucción `Open`.
  • El segundo argumento es el atributo que quieras obtener. En este caso, usamos el valor 2, que corresponde al modo de acceso del archivo.

A pesar de ser obsoleta, la función aún puede funcionar en ediciones actuales de VBA, pero es altamente recomendable actualizar el código para usar técnicas y objetos más actuales y con mejor soporte. Si estás trabajando con operaciones de archivos en VBA moderno, considera usar `FileSystemObject` o métodos del objeto `Workbook` en Excel, como `Open`, `SaveAs`, etc., para operaciones relacionadas con libros de trabajo.

Conoce nuestros servicios

Conoce nuestra tienda

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Deja un comentario