La fonction `GetAttr` en VBA (Visual Basic for Applications) est utilisée pour obtenir les attributs d’un fichier ou d’un répertoire. Ces attributs peuvent indiquer si le fichier est en lecture seule, masqué, un répertoire, un fichier système, etc. Voici comment l’utiliser :
Syntaxe
GetAttr(pathname)
- pathname : Une chaîne représentant le chemin d’accès complet du fichier ou du répertoire dont vous voulez obtenir les attributs.
Valeurs de retour
`GetAttr` renvoie une valeur numérique qui peut être vérifiée à l’aide de constantes prédéfinies dans VBA. Ces constantes incluent :
- `vbNormal` (0) : Fichier normal.
- `vbReadOnly` (1) : Fichier en lecture seule.
- `vbHidden` (2) : Fichier masqué.
- `vbSystem` (4) : Fichier système.
- `vbDirectory` (16) : Répertoire.
- `vbArchive` (32) : Fichier d’archive.
Pour vérifier si un fichier ou répertoire possède un ou plusieurs de ces attributs, vous utilisez l’opérateur And pour tester les bits spécifiques.
Exemple d’utilisation
Sub ExampleGetAttr()
Dim filePath As String
Dim attr As Integer
' Chemin du fichier
filePath = "C:CheminVersVotreFichier.txt"
' Obtenir les attributs
attr = GetAttr(filePath)
' Vérifier les attributs
If attr And vbReadOnly Then
MsgBox "Le fichier est en lecture seule."
Else
MsgBox "Le fichier n'est pas en lecture seule."
End If
If attr And vbHidden Then
MsgBox "Le fichier est masqué."
End If
If attr And vbSystem Then
MsgBox "Le fichier est un fichier système."
End If
If attr And vbDirectory Then
MsgBox "Ceci est un répertoire."
Else
MsgBox "Ceci est un fichier."
End If
End Sub
Notes
- Si le chemin spécifié n’existe pas, une erreur d’exécution se produira. Vous devez donc envisager d’ajouter une gestion des erreurs pour traiter un tel cas.
- Vous pouvez combiner plusieurs constantes à l’aide de l’opérateur + pour tester plusieurs attributs simultanément, par exemple, `If attr And (vbReadOnly + vbHidden) Then`.
En utilisant la fonction `GetAttr`, vous pouvez facilement interagir avec le système de fichiers pour déterminer les attributs de vos fichiers et répertoires et ajuster votre logique en conséquence.