
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



