Les dadas d'iza

sommaire

sur cette page :

   Enregistrer une macro
   Visualiser le code
   Modifier le code



© Isabelle Côté

exercice avec vba de ms office 97

Accueil > Iza > Programmation VB > VBA de Ms Office
Ou Page précédente

Enregistrement d'une macro dans Word

Commençons par quelque chose de simple. Vous allez créer une macro qui écrit votre nom. Cette macro (diminutif de macro commande) n'aura en fait que peu d'utilité puisque Word vous propose d'écrire votre nom dès que vous en tapez les premières lettres. Mais vous pourrez ensuite la modifier pour insérer votre adresse, par exemple.

Il est grand temps de définir ce qu'est au juste une macro ou comme mentionné plus haut, une macro commande. Il s'agit d'une série d'instructions qui s'enregistrent pendant que vous les exécutez et que vous pouvez rappeler plus tard pour les exécuter à nouveau en un seul clic de souris. Comme si vous accomplissiez tout un tas de commandes mais par une seule. D'où son nom de macro commande.

Marche à suivre :

Créez un nouveau document et enregistrez le en lui donnant le nom de MaMacro.doc. Puis cliquez sur les menus Outils / Macros / Nouvelle macro. La boîte de dialogue Enregistrer une macro s'ouvre.

Dans le champ Nom de la macro, écrivez le nom que vous voulez donner à votre macro. (Un champ est le nom que l'on donne aux cases de texte ou vous pouvez écrire quelque chose.)N'utilisez pas les espaces ni les caractères spéciaux ou accentués. Autrement dit, le nom de la macro doit être écrit en un seul mot. Si pour donner un sens au nom que vous choisirez, vous voulez utiliser plusieurs mots, utilisez les majuscules pour commencer chaque mot. Par exemple : MaPremiereMacro est un nom correct. Pour cet exercice tapez simplement Moi dans ce champ.

Le champ suivant est une liste déroulante où vous choisirez dans quel fichier vous voulez enregistrer la macro. L'option Tous les fichiers permet d'enregistrer la macro dans le modèle par défaut (de base) de Word, soit le modèle Normal.dot. Cela a pour effet de rendre la macro disponible pour tous les nouveaux documents que vous créerez. Pour le moment, vous ne voulez pas modifier ce modèle (du moins je le présume), vous allez donc choisir le nom du fichier actif : MaMacro.doc.

Pour finir, vous pouvez si vous le désirez, taper un commentaire qui décrira ce que fait votre macro. Par défaut, un commentaire est déjà inscrit dans ce champ. Placez ici un commentaire de votre cru ou laissez le commentaire par défaut. Il vous sera possible de le modifier plus tard si vous choisissez cette dernière option.

La boîte de dialogue Enregistrer une macro

La barre d'outils Arrêt Cliquez sur OK. La barre d'outil Arrêt de (Allez savoir ce qui y est écrit ensuite) apparaît.
 

Tapez votre nom, rien d'autre.

Le bouton Arrêt Cliquez sur le bouton Arrêt de la barre d'outils Arrêt de.

Bravo ! Vous venez d'enregistrer votre première macro commande.

Maintenant, allons voir ce que ça donne.

|  Haut de la page  |  Sommaire   |


Visualiser le code dans l'environnement VBA

Bon ! Maintenant que vous avez réalisé votre macro, allons voir un peu ce que notre bon vieux Word a écrit pour nous.

Pour visionner votre code, cliquez sur les menus Outils / Macros / Macro. La boîte de dialogue Pour l'instant, ne modifiez rien. Nous allons simplement examiner les différentes parties de l'interface de Visual Basic.

Comme dans toute application Windows qui se respecte (d'autant qu'il s'agit ici d'un produit Microsoft), vous retrouverez une barre de titre, une barre de menus, une barre d'outils et une fenêtre de document. Jusqu'à maintenant, rien de nouveau. Mais voici deux nouveau éléments qui s'ajoutent à notre décors habituel. Il s'agit de la fenêtre Propriété et de la fenêtre Projet.

La fenêtre Projet Attardons nous un peu sur la fenêtre Projet. Deux items y sont développés : Normal et Project (MaMacro). Normal, c'est le modèle Normal.dot. Un conseil : n'y touchez pas. À moins, bien sur, que vous soyez absolument certain de ce que vous faites. C'est Project (MaMacro) qui nous intéresse. Vous avez sans doute reconnu le nom de votre document. Le premier dossier contient L'objet ThisDocument, ce qui représente le document qui contient la macro. Et oui ! Visual Basic considère qu'un document Word est un objet. Un objet Document (prononcez le en anglais). Et la macro que vous venez de créer va vous permettre de modifier votre document donc d'agir sur un objet Document.

Le second dossier nommé Modules contient un module nommé NewMacro. Le module NewMacro contient le code de vos macro commandes. Si vous enregistrez une autre macro, disons la macro Toto qui écrit la date de la création du fichier au point d'insersion; cette macro s'enregistrerait dans le même module.

Voici la fenêtre qui nous intéresse : La fenêtre NewMacro(code). Pour l'instant, ne touchez à rien. Nous allons ensemble examiner un peu ce code pour voir ce qu'il a à dous dire.

La fenêtre NewMacro(code)

Tout d'abord, toutes les macros commencent par
  Sub NomDeLaMacro()
et se terminent par
  End Sub

Voyez les lignes en vert qui débutent par une apostrophe. Ce sont des commentaires. Les lignes de commentaires ne sont pas exécutées et permettent de documenter votre code. Lorsque vous voulez consulterez votre macro pour modifications, il vous sera plus facile de le faire s'il contient des commentaires vous rappelant ce que fait exactement telle ou telle partie du code.

Donc pour mettre du texte en commentaire, il vous suffit de commencer une ligne par une apostrophe. Vous pouvez aussi finir une ligne de code par un commentaire. Par exemple :
  Dim Compteur as integer 'pour les boucles for next
est un exemple où le commentaire est placé sur la même ligne que le code.

Et enfin, La ligne de dode :
  Selection.TypeText Text:="Votre Nom"

Voyons un peu chacune de ses parties.

  Selection
il s'agit de la sélection courante ou de l'endroit ou se trouve le point d'insertion si aucune sélection n'a été faite.

  .TypeText
Le point sépare le mot TypeText du mot selection, il annonce qu'une intervention va être faite sur l'objet Selection. TypeText est une méthode. Les objets de Visual Basic comme de MS Office peuvent être manipulés avec leurs propriétés ou leurs méthodes.

  Text:="Votre Nom"
Text est l'argument de la méthode TypeText. Un argument c'est l'élément qui fait qu'une fonction ou une méthode retourne tel ou tel résultat. Les fonctions et les méthodes n'ont pas toutes besoin d'arguments. L'argument Text doit contenir une valeur de chaîne ou si vous préférez : du texte. Et ce texte doint être entre gillemets.

Vous aurez plus d'explications sur chacun de ces mots clés en plaçant le curseur sur un mot (à la fois) et en appuyant sur la touche F1. L'aide de VBA devrait s'ouvrir à la rubrique correspondante.

|  Haut de la page  |  Sommaire   |


Modifier une macro dans l'environnement VBA

Je n'ai pas la prétention de vous enseigner VisualBasic pour Application dans cette rubrique. Vous vous doutez bien que ce n'est pas possible. Mais nous allons nous amuser un peu avec une fonction intégrée au langage VisualBasic : la boîte de message. Vous avez sans doute souvent rencontré ce genre de petite boîte de dialogue qui apparaît à l'écran pour vous informer de la suite des événements ou pour vous demander de confirmer votre dernière action soit, par exemple, quand vous quittez un document sans l'avoir enregistré ou lorsque que vous effacez un fichier.

Nous allons donc intégrer à notre macro une boîte de message simple ayant un seul bouton. C'est la boîte de message par défaut, c'est à dire telle que lorsque l'on n'y ajoute aucun paramètre. C'est la plus simple de toutes.

Dans la fenêtre VBA, tapez la ligne de code suivante sur une nouvelle ligne, juste au dessous de Selection.TypeText...

   Sub Moi()
   '
   'Moi Macro
   'Cette macro écrit mon nom au point d'insertion
   '
      Selection.TypeText Text="Votre Nom"
      MsgBox "Cette macro vient d'ajouter votre nom au document."
   End Sub

Maintenant, suivez les instruction suivantes :

bouton Enregistrer   Cliquez sur le bouton Enregistrer.
 
bouton Affichage dans Word   Puis sur le bouton Affichage Microsoft Word.
  • Dans Word, cliquez sur Outils > Macro > Macro et sélectionnez la macro Moi, puis cliquez sur le bouton Exécuter.
  • Votre boîte de message apparaît après que votre nom ait apparu au point d'insertion. Lisez le message et cliquez sur le bouton OK.

Vous venez de créer et d'exécuter votre premier programme VBA. Bon, pour l'instant, il ne fait pas grand chose. mais ça ne fait rien. D'habitude, après cette première expérience, on sait ou non si on va continuer à s'intéresser à la programmation.

Vous trouverez quelques liens intéressants en cliquant ici.

À propos de la fonction MsgBox :
il s'agit bien d'une fonction mais nous l'avons utilisé ici en tant qu'instruction. En effet, et vous le verrez si vous continuez à vous intéresser à la programmation, une fonction comporte des parenthèses avec ou sans arguments et le plus souvent retourne une valeur. La syntaxe de la fonction MsgBox ressemble à ceci :

(sur une seule ligne)
   variable = MsgBox ("Votre message", boutons + icones, "le titre
   de la boîte de message")

Par exemple (sur une seule ligne) :
   varResultat = MsgBox ("Voulez-vous que VBA ajoute votre nom au
   point d'insertion?", vbYesNo + vbQuestion, "Exécution de la
   macro Moi")

affiche la boîte dialogue suivante :

Boîte de message Oui-Non

Le fait de cliquer sur Oui ou sur Non retournera une valeur différente par la fonction MsgBox. Il faut ensuite programmer ce qu'il faut faire avec le résultat pour que votre programme exécute l'action appropriée.

Par exemple (sur trois lignes) :
   If varReponse = vbYes Then
      Selection.TypeText Text="Votre Nom"
   End If

Voir le code complet.

Je n'en dis pas plus pour l'instant. Car c'est déja beaucoup pour une première fois. Cependant, vous pouvez continuer à vous amuser en enregistrant différentes macros et en examinant le code. Alors, faites de belles macros et amusez-vous!


|   Haut de la page   |   Sommaire   |