Université des Sciences et Technologies de Lille Introduction à VBA 1/13 Introd
Université des Sciences et Technologies de Lille Introduction à VBA 1/13 Introduction aux Macros et à Visual Basic pour Applications − Olivier Losson − Note préliminaire Il est surtout fait référence ici aux interfaces, commandes et fonctions de Word, Excel et Powerpoint (celles d'Access en diffèrent sensiblement). 1. Généralités et définitions Dans une application Microsoft de la suite Office (Excel, Word, Access ou PowerPoint), chaque fois qu'une même séquence d'actions doit être effectuée périodiquement, il est possible d'enregistrer celles-ci dans une macro-commande de manière à les réaliser ensuite automatiquement, autant de fois qu'on le désire. Une macro-commande (macro en abrégé) est donc une suite de commandes et permet d'automatiser certaines tâches que l'on est amené à effectuer de manière répétitive, éventuellement avec des données différentes (ex. : mise en forme d’un tableau, recherche ou formatage de données, …). Avec les macros, on peut créer des commandes complexes, de nouvelles fonctions, des interfaces graphiques avec menus, boîtes de dialogue, boutons personnalisés, … En un mot, les macros permettent à chacun de créer des outils adaptés à ses propres besoins. Avant de créer une macro pour automatiser une tâche, on doit toutefois s'assurer qu'aucune solution intégrée n'est fournie. Par exemple, si on veut sélectionner toutes les cellules vides d’une feuille Excel, il suffit de choisir le menu Edition/Atteindre et de cliquer sur Cellules… dans la boîte de dialogue. Une macro est un “programme” qui exécute une suite de tâches bien définies, grâce à des instructions écrites : • jusqu'à récemment (version 5 d'Excel, 6 de Word), dans un langage macro ; le programme était alors édité dans un document classique (feuille de calcul ou document Word par exemple) ; • actuellement en Visual Basic pour Applications (VBA), qui est un sous-ensemble du langage de programmation Visual Basic, et possède de nombreux avantages : - Portabilité. La macro est éditée dans une fenêtre dédiée (l'éditeur) dont la présentation est la même pour toutes les applications Office. De plus, les macros sont stockées dans des modules, ce qui permet de les retrouver et de les réutiliser aisément. - Orientation objet. Les éléments manipulés sont spécifiques à chaque application hôte : il s’agit par exemple de blocs de texte sous Word, de plages de cellules sous Excel ou de données stockées dans une table sous Access. Appelée objets, ceux-ci possèdent certaines caractéristiques bien définies, ainsi qu’un comportement propre (on dit qu’ils sont encapsulés). Ainsi, toute commande que vous pourriez réaliser sur un objet (ex. suppression d’un bloc de texte, formatage d’une plage de cellules ou édition d’un enregistrement d’une table) possèdent un équivalent sous forme de code VBA (procédure). L’ensemble des objets d’une application est regroupé dans une bibliothèque. - Fonctionnalités intégrées de débogage et possibilité de compiler les modules de code en macros complémentaires distribuables pour réaliser des applications professionnelles sécurisées. Par ailleurs, les applications Office contiennent un enregistreur de macros, outil intégré qui crée le code VBA à notre place. Introduction à VBA Université des Sciences et Technologies de Lille 2/13 2 – Enregistrement et exécution de macros 2.1. Enregistrement Si la macro à créer est simple, ou pour générer rapidement une première ébauche d’une macro plus complexe, on peut utiliser l’enregistreur de macros. Celui-ci fonctionne comme un magnétoscope : il mémorise les actions que vous effectuez (sélections, commandes, …) dans un module Visual Basic pour pouvoir les reproduire le moment voulu. L'enregistreur est accessible à partir du menu Outils/Macro/Nouvelle macro… On donne alors le nom de la macro1, éventuellement une touche de raccourci et une description, ainsi qu’un document de stockage2. Lorsqu’on appuie sur OK, l'enregistrement commence : toutes les actions que vous effectuez alors sont stockées dans le code de la macro et seront reproduites à l'identique lors de son exécution. Pour terminer l'enregistrement, appuyer sur le bouton (ou Outils/Macro/Arrêter l'enregistrement). 2.2. Exécution et modification Pour exécuter une macro, ou gérer les différentes macros attachées au document (modification, suppression, …), utiliser la commande Outils/Macro/Macros… En appuyant sur l'un des boutons Créer ou Modifier de la même boîte de dialogue, on accède à l'éditeur Visual Basic pour, respectivement, créer de toutes pièces ou modifier une macro enregistrée. 3 – L’éditeur Visual Basic (VBE) 3.1. Vue générale A partir de la version 97 de la suite Office, la présentation de l'éditeur VBA a été homogénéisée (cf. figure 1 page suivante) ; il se présente dans une fenêtre distincte de celle de l’application hôte, ce qui permet de séparer le code des données. 3.1.1. Fenêtre Explorateur de Projet Un projet regroupe l'ensemble des documents (i.e., sous Excel, les feuilles de calcul associées à un classeur, et sous Word, le document texte) et des macros. A partir de la racine de l'arborescence du projet, les documents sont accessibles dans la branche Microsoft Excel|Word|PowerPoint Objects et les macros dans la branche Modules. 1 Le nom de la macro doit commencer par une lettre, ne pas comporter d’espace ni de caractère de ponctuation, et ne peut être un mot réservé de VBA ; éviter également les caractères accentués. 2 Une macro est liée à un document qui la contient ; elle ne peut être exécutée que si ce dernier est ouvert. La macro peut être enregistrée avec le document courant, mais pour la rendre accessible en permanence, il est aussi possible de la placer : - Sous Word, dans le modèle global NORMAL.DOT. - Sous Excel, dans un classeur de macros personnelles, nommé PERSO.XLS, et placé dans le répertoire XLOUVRIR pour qu’il soit ouvert à chaque démarrage d’Excel (il reste cependant invisible ; activer le menu Fenêtre/afficher pour pouvoir modifier les macros qu’il contient). - Sous Powerpoint, cela est impossible (la macro n’est accessible que de la présentation où elle est enregistrée). t En phase de mise au point, stockez d’abord vos macros dans le document courant et transférez-les dans la bibliothèque de macros personnelles lorsqu’elles sont au point. Université des Sciences et Technologies de Lille Introduction à VBA 3/13 Explorateur de Projet Visualise les éléments constitutifs des projets en cours (notamment les documents ouverts dans l'application hôte). Explorateur d'objets Affiche les classes, propriétés, méthodes, événements, constantes disponibles dans les bibliothèques d'objets et procédures du projet. Fenêtre Propriétés Permet de visualiser et modifier les propriétés associées aux objets constitutifs d'un projet. Fenêtre Espions Visualise la valeurs et le type des variables ou expressions "espionnes" définies. Fenêtre Var. Locales Visualise la valeurs et le type des variables locales. Fenêtre de Code Permet d'éditer le code des projets Fenêtre User Form et sa Boîte à Outils Espace dans lequel on conçoit les feuilles VBA. La boîte à outils propose des contrôles (cases à cocher, zones de liste déroulantes,…) à placer sur une feuille qui constitue une interface pour l'application Figure 1 : Fenêtre de l’éditeur VBA 3.1.2. Fenêtre de Code C’est ici que vous modifiez le code généré. En général, l’enregistreur de macros génère plus de code que nécessaire ; il faut donc le « dépoussiérer » en retirant les instructions et options de commandes superflues afin de minimiser le temps d’exécution de la macro. Dans cette fenêtre, les mots-clés réservés apparaissent en bleu et les commentaires en vert (ceci est personnalisable dans Outils/Options/Format de l’éditeur). 3.1.3. Fenêtres Espions et Variables locales Voir la section « 7. Exécution pas à pas et débogage » ci-après. 3.2. Aides à l'édition Outre l'enregistreur de macros, qui permet souvent de générer une première ébauche de votre programme, vous disposez sous VBE de plusieurs systèmes d'aide à l'édition de code : - vérification automatique de la syntaxe : si cette option est active, lors du passage à la ligne suivante, l'éditeur signale les erreurs syntaxiques les plus évidentes (par ex. s'il manque then après if) et met en majuscules les objets, propriétés et méthodes qu'il connaît. t Tapez donc tout en minuscules; si votre code est correct, il sera formaté automatiquement. - aide contextuelle : placer le curseur dans un mot, ou sélectionner celui-ci, puis appuyer sur F1 ; - aide classique, avec son sommaire et ses fonctions de recherche. La rubrique Objets Microsoft Word | Excel | PowerPoint… permet notamment de parcourir la hiérarchie des classes d'objets ; - affichage des propriétés et méthodes applicables à un objet lorsque l'on tape le “.” de séparation ; - explorateur d'objets : affiche les membres (propriétés , méthodes et événements ) des objets (cf. plus loin pour ces différentes notions). Introduction à VBA Université des Sciences et Technologies de Lille 4/13 4 – Notions de Module et de Procédure 4.1. Procédure 4.1.1. Définition En fait, le mot macro a été conservé par « compatibilité de vocabulaire » avec les versions antérieures d’Office. Mais dorénavant, le code VBA est organisé en procédures, ce qui le rend plus performant et lisible. Les mots macro et procédure désignent donc la même notion et seront employés indifféremment. Une macro débute par le mot Sub (abréviation de l’anglais Subroutine = procédure), suivi du nom de la macro, et se termine par les mots End Sub. Une procédure est une suite d'instructions, chacune exécutant une tâche précise. 4.1.2. Relation entre uploads/s1/ introduction-aux-macros-et-a-vba-pdf 1 .pdf
Documents similaires
-
41
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mai 06, 2021
- Catégorie Administration
- Langue French
- Taille du fichier 0.1204MB