Le meilleur guide VBA (pour les débutants) dont vous aurez jamais besoin
- 4912
- 759
- Maëlle Perez
La plate-forme de programmation VBA qui s'exécute dans presque tous les produits Microsoft Office est l'un des outils les plus puissants que l'on puisse utiliser pour améliorer leur utilisation de ces produits.
Ce guide VBA pour les débutants vous montrera comment ajouter le menu du développeur à votre application Office, comment saisir la fenêtre de l'éditeur VBA et comment fonctionnent les instructions et les boucles de base de VBA afin que vous puissiez commencer à utiliser VBA dans Excel, Word, PowerPoint, Outlook et OneNote.
Table des matièresLa liste de gauche comprend toutes les menus disponibles et les commandes de menu disponibles dans cette application de bureau. La liste à droite est celles qui sont actuellement disponibles ou activées.
- Vous devriez voir le développeur dans la liste à droite, mais il ne sera pas activé. Sélectionnez simplement la case pour activer le menu Développeur.
- Si tu ne vois pas Développeur Disponible à droite, puis changez la gauche Choisir les commandes de la liste déroulante à Toutes les commandes. Trouver Développeur dans la liste et sélectionner Ajouter >> au centre pour ajouter ce menu au ruban.
- Sélectionner D'ACCORD Quand tu as fini.
- Une fois le menu du développeur actif, vous pouvez revenir à votre fenêtre d'application principale et sélectionner Développeur dans le menu supérieur.
- Puis sélectionnez Afficher le code du groupe de contrôles du ruban pour ouvrir la fenêtre de l'éditeur VBA.
- Cela ouvrira la fenêtre de l'éditeur VBA où vous pouvez taper le code que vous apprendrez dans les prochaines sections.
- Essayez d'ajouter le menu du développeur à quelques-unes des applications de bureau que vous utilisez tous les jours. Une fois que vous êtes à l'aise d'ouvrir la fenêtre de l'éditeur VBA, continuez à la section suivante de ce guide.
Conseils de programmation générale VBA pour les débutants
Vous remarquerez que lorsque l'éditeur VBA s'ouvre, les options de navigation dans le panneau de gauche sont différentes d'une application de bureau à l'autre.
En effet. Par exemple, dans Excel, vous pouvez ajouter du code VBA à des objets de classeur ou de feuille. Dans Word, vous pouvez ajouter du code VBA aux documents. Dans PowerPoint, uniquement aux modules.
Alors, ne soyez pas surpris par les différents menus. La structure et la syntaxe du code VBA sont les mêmes dans toutes les applications. La seule différence sont les objets que vous pouvez référencer et les actions que vous pouvez entreprendre sur ces objets via le code VBA.
Avant de plonger dans les différents objets et actions que vous pouvez les prendre via le code VBA, examinons d'abord la structure VBA la plus courante et la syntaxe que vous pouvez utiliser lorsque vous écrivez le code VBA.
Où mettre le code VBA
Lorsque vous êtes dans l'éditeur VBA, vous devez utiliser les deux boîtes déroulantes en haut de la fenêtre d'édition pour choisir l'objet auquel vous souhaitez joindre le code et lorsque vous voulez que le code s'exécute.
Par exemple, dans Excel, si vous choisissez Feuille de travail et Activer, Le code s'exécutera chaque fois que la feuille de travail est ouverte.
Autres actions de la feuille de travail que vous pouvez utiliser pour déclencher votre code VBA incluent lorsque la feuille de travail change, lorsqu'elle est fermée (désactivée), lorsque le calcul de la feuille de travail est exécuté, et plus.
Lorsque vous ajoutez du code VBA dans l'éditeur, assurez-vous toujours de placer votre code VBA sur l'objet et en utilisant l'action correcte que vous souhaitez utiliser pour déclencher ce code.
VBA If Instructions
Une déclaration IF fonctionne dans VBA comme cela fonctionne dans tout autre langage de programmation.
La première partie de l'instruction IF examine si une condition ou un ensemble de conditions est vrai. Ces conditions peuvent être jointes par un opérateur et ou.
Un exemple serait de vérifier si une note dans une feuille de calcul est au-dessus ou en dessous d'une note de «pass.
Si les cellules (2, 2)> 75 alors les cellules (2, 3) = «passer» sinon cellules (2, 3) = «échouer»
Si vous ne voulez pas toute l'instruction sur une seule ligne, vous pouvez la diviser en plusieurs lignes en ajoutant un symbole «_» à la fin des lignes.
Si les cellules (2, 2)> 75 alors _
Cellules (2, 3) = «passer» sinon _
Cellules (2, 3) = «échec»
L'utilisation de cette technique peut souvent rendre le code beaucoup plus facile à lire et à déboguer.
VBA pour les prochaines boucles
Si les déclarations sont idéales pour les comparaisons uniques, comme l'exemple ci-dessus de regarder une seule cellule. Mais que se passe-t-il si vous voulez traverser une gamme entière de cellules et faire la même déclaration sur chaque?
Dans ce cas, vous auriez besoin d'une boucle pour.
Pour ce faire, vous devrez utiliser la longueur d'une plage et parcourir cette longueur par le nombre de lignes contenant des données.
Pour ce faire, vous devez définir la plage et les variables cellulaires, et les boucler à travers eux. Vous devrez également définir un compteur afin que vous puissiez sortir les résultats de la ligne appropriée. Donc votre code VBA aurait d'abord cette ligne.
Rng dim comme gamme, cellule comme gamme
Dim Rowcounter comme entier
Définissez la taille de la plage comme suit.
Définir RNG = Range («B2: B7»)
Rowcounter = 2
Enfin, vous pouvez créer votre boucle pour faire passer chaque cellule de cette plage et faire la comparaison.
Pour chaque cellule en RNG Si la cellule.Valeur> 75 puis _ Cellules (Rowcounter, 3) = "pass" else _ Cellules (Rowcounter, 3) = "échec" Rowcounter = RowCounter + 1 Cellule suivante
Une fois ce script VBA exécuté, vous voyez les résultats dans la feuille de calcul réelle.
VBA pendant les boucles
Une boucle de temps se déroule également à travers une série de déclarations, tout comme la boucle pour la boucle, mais la condition de la boucle pour continuer est une condition restante.
Par exemple, vous pouvez écrire la même.
Tandis que Rowcounter < rng.Count + 2 Si les cellules (Rowcounter, 2)> 75 puis _ Cellules (Rowcounter, 3) = "pass" else _ Cellules (Rowcounter, 3) = "échec" Rowcounter = RowCounter + 1 Se promener
Noter la RNG.Compter + 2 La limite de terminaison est requise car le compteur de ligne commence à 2 et doit se terminer sur la ligne 7 où les données se terminent. Cependant, le nombre de la plage (B2: B7) n'est que de 6, et la boucle While ne se terminera qu'une fois que le compteur est supérieur au compteur - de sorte que la dernière valeur RowCounter doit être 8 (ou RNG.Compter + 2).
Vous pouvez également configurer la boucle while comme suit:
Tandis que Rowcounter <= rng.Count + 1
Vous ne pouvez augmenter que le nombre de plages (6) par 1, car une fois que la variable Rowcounter atteint la fin des données (ligne 7), la boucle peut terminer.
VBA faire pendant et faire jusqu'à des boucles
Faire pendant et faire jusqu'à ce que les boucles soient presque identiques aux boucles, mais fonctionnent légèrement différentes.
- Le Pendant la boucle vérifie si une condition est vraie au début de la boucle.
- Le Boucle à faire vérifie si une condition est vraie après avoir exécuté les instructions dans la boucle.
- Le Boucle de bricolage vérifie si une condition est toujours fausse après l'exécution de la boucle.
Dans ce cas, vous réécririez la boucle While ci-dessus comme suit, comme une boucle à faire.
Faire Si les cellules (Rowcounter, 2)> 75 puis _ Cellules (Rowcounter, 3) = "pass" else _ Cellules (Rowcounter, 3) = "échec" Rowcounter = RowCounter + 1 Boucle pendant que RowCounter < rng.Count + 2
Dans ce cas, la logique ne change pas beaucoup, mais si vous voulez vous assurer que la comparaison de la logique se déroule après que toutes les déclarations sont exécutées (ce qui leur permet à tous d'exécuter quoi que ce soit au moins une fois), puis un do- ou la boucle de bricolage est la bonne option.
VBA SELECT Case Instructions
Le type final de instruction logique que vous devrez comprendre pour commencer à structurer votre code VBA sont des instructions de cas sélectionnées.
Compte tenu de l'exemple ci-dessus, disons que vous voulez avoir une méthode de notation qui n'est pas seulement une panne. Au lieu de cela, vous souhaitez attribuer une note de lettre de A à F.
Vous pouvez le faire avec l'instruction SELECT CASE suivante:
Pour chaque cellule en RNG Sélectionnez la cellule de cas Cas 95 à 100 Cellules (Rowcounter, 3) = "A" Cas 85 à 94 Cellules (Rowcounter, 3) = "B" Cas 75 à 84 Cellules (Rowcounter, 3) = "C" Cas 65 à 74 Cellules (Rowcounter, 3) = "D" Cas 0 à 64 Cellules (Rowcounter, 3) = "F" Fin de sélection Rowcounter = RowCounter + 1 Cellule suivante
La feuille de calcul résultant après ce script VBA ressemble à celle ci-dessous.
Vous savez maintenant tout ce que vous devez savoir pour commencer à utiliser VBA dans vos applications Microsoft Office.