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

`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.

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

Deja un comentario