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

VBA

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:

VB

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.

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