¿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:

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 nuestra tienda

Ver más productos

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Ayúdanos a hacer crecer el proyecto

¡Únete a nuestro Grupo de Facebook!

Deja un comentario