Contenido
`GetAttr` es una función en VBA (Visual Basic for Applications) que se utiliza para devolver los atributos de un archivo o directorio. Los atributos pueden ser, por ejemplo, si el archivo o directorio es de solo lectura, si es un archivo oculto, si es un sistema de archivos, etc.
Aquí tienes un ejemplo sobre cómo utilizar `GetAttr` en VBA para obtener los atributos de un archivo y luego verificar si el archivo es de solo lectura:
Sub ChequearAtributoSoloLectura()
Dim rutaArchivo As String
Dim atributosArchivo As Integer
' Define la ruta del archivo
rutaArchivo = "C:tu_directoriotu_archivo.txt"
' Obtiene los atributos del archivo
atributosArchivo = GetAttr(rutaArchivo)
' Verifica si el archivo es de solo lectura
If (atributosArchivo And vbReadOnly) = vbReadOnly Then
MsgBox "El archivo es de solo lectura."
Else
MsgBox "El archivo no es de solo lectura."
End If
End Sub
Los valores que puede devolver `GetAttr` corresponden a:
- `vbNormal` (0) – Normal.
- `vbReadOnly` (1) – Solo lectura.
- `vbHidden` (2) – Oculto.
- `vbSystem` (4) – Archivo de sistema.
- `vbVolume` (8) – Etiqueta de volumen (no es utilizable en esta función).
- `vbDirectory` (16) – Directorio.
- `vbArchive` (32) – Archivo que necesita ser archivado o respaldado.
Puedes utilizar los operadores lógicos para verificar la presencia de múltiples atributos a la vez. Ten en cuenta que la función GetAttr devolverá un error si la ruta del archivo no existe o es inválida.
Por ejemplo, para comprobar si un archivo es tanto oculto como de solo lectura, podrías hacerlo de la siguiente manera:
Sub ComprobarMultiplesAtributos()
Dim rutaArchivo As String
Dim atributosArchivo As Integer
' Define la ruta del archivo
rutaArchivo = "C:tu_directoriotu_archivo.txt"
' Obtiene los atributos del archivo
atributosArchivo = GetAttr(rutaArchivo)
' Verifica si el archivo es de solo lectura y oculto
If (atributosArchivo And (vbReadOnly + vbHidden)) = (vbReadOnly + vbHidden) Then
MsgBox "El archivo es de solo lectura y oculto."
Else
MsgBox "El archivo no tiene ambas propiedades de solo lectura y oculto."
End If
End Sub
Recuerda siempre manejar con cuidado las rutas y verificar la existencia de los archivos para prevenir errores al utilizar esta función.