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_directorio\tu_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_directorio\tu_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.