Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !

Les interactions Windows

Les API Windows

1. Définition

Une API (Application Programming Interface) est une série de fonctions système du système d’exploitation qui peuvent être appelées à partir de VBA. Ces fonctions sont accessibles dans des fichiers DLL des répertoires système.

L’utilisation d’API est à privilégier dans certains cas de figure, notamment :

  • l’usage d’informations système qui ne sont pas exploitables nativement avec VBA ;

  • l’accélération possible du code : le VBA n’étant pas le langage le plus rapide, il reste néanmoins possible d’utiliser des API développées dans d’autres langages plus véloces pour arriver à des performances optimisées ;

  • l’optimisation de l’application en termes de poids, l’utilisation d’API étant moins coûteuse que celle d’ActiveX.

Il est fréquent que l’usage des API provoque quelques réserves chez les développeurs, notamment à cause de la faiblesse de la documentation disponible, le manque d’information sur la programmation interne des API, mais également parce que manipuler des fonctions système reste une source possible de risque d’instabilité des applications et du système d’exploitation au sein de l’environnement informatique.

2. Déclaration d’une API

L’appel des fonctions API dans le corps du programme se faisant comme pour n’importe quelle autre fonction ou procédure, il reste néanmoins une principale différence lors de la déclaration.

a. Syntaxe générale

La syntaxe générale de déclaration d’une API est la suivante :

[Private ou Public] Declare [PtrSafe] Function ou Sub Nom Lib "NomLibrairie" ...

L’objet FileSystemObject

1. Introduction

En dehors des fonctions basiques que propose le VBA pour accéder et manipuler les fichiers et répertoires, il existe un objet des plus pratiques. L’objet FileSystemObject est disponible à partir de la librairie Microsoft Scripting Runtime.

2. Hiérarchie de l’objet

Le schéma suivant représente la hiérarchie des principaux objets et collections du type FileSystemObject.

images/1913RI1.png

3. Gestion des disques

Il est possible de parcourir la collection des disques Drives. Un disque est un objet Scripting.Drive.

a. Propriétés de l’objet Drive

Propriété

Description

AvailableSpace

Représente la place disponible sur le disque, exprimée en octets.

DriveLetter

Représente la lettre utilisée par le système pour accéder au disque.

DriveType

Représente le type de disque (CDRom, Fixed, RamDisk, Remote, Removable ou UnknownType).

FileSystem

Représente le type de système du disque (NTFS, FAT).

FreeSpace

Représente la place libre sur le disque, exprimée en octets.

IsReady

Représente une valeur booléenne indiquant si le disque est disponible (par exemple présence d’une clé USB sur le port USB en façade).

Path

Représente le chemin d’accès au disque (I: par exemple).

RootFolder

Représente le dossier racine (I:\ par exemple).

SerialNumber

Représente le numéro de série du disque.

ShareName

Représente le nom de partage du disque (retournera une chaîne de caractères vide si le disque n’est pas partagé).

TotalSize

Représente la taille totale du disque, exprimée en octets.

VolumeName

Représente le nom du volume du disque (exemple DATA).

b. Exemple

Voici par exemple une procédure qui liste les disques disponibles, en indiquant pour chacun leurs...

Les fichiers texte

Les fichiers texte sont parmi les éléments les plus manipulés en programmation, que cela soit pour envoyer ou pour recevoir des informations. Il est donc important de traiter leur manipulation dans cette section. Pour rappel, un fichier texte est un fichier composé d’une ou de plusieurs lignes séparées par une combinaison des caractères retour chariot et changement de ligne : vbCr & vbLf ou encore vbCrLf.

1. Accès séquentiel

Historiquement, le premier moyen d’accéder et de lire un fichier en VBA est l’accès séquentiel : le fichier est d’abord ouvert avec la méthode Open, et un numéro lui est attribué jusqu’à sa fermeture.

a. Syntaxe générale

La syntaxe générale d’ouverture d’un fichier est la suivante :

Open Emplacement For Input|Output|Append As Numero 

Le fichier peut être ouvert en lecture seule, en écriture ou en ajout.

Pour fermer le fichier une fois son usage terminé, la syntaxe générale est la suivante :

Close Numero 

b. Lecture

Pour ouvrir un fichier en lecture seule, la syntaxe est la suivante :

Open Emplacement For Input As Numero 

La variable Numero ne peut pas être utilisée plusieurs fois tant que le fichier auquel le numéro est attribué reste ouvert. Pour ne pas avoir de conflit de numérotation, la fonction FreeFile retourne une valeur correcte comprise entre 1 et 255.

Dim NumFic As Integer 
NumFic = FreeFile 
Open "U:\ENI\exemple.txt" For Input As NumFic 

Si la numérotation entre 1 et 255 n’est plus suffisante, il reste la possibilité de générer un nombre valide entre 256 et 511 grâce à l’appel de la fonction FreeFile avec le paramètre 1 :

NumFic = FreeFile(1) 

Une fois...