Votre toute première macro, avec Word 2000

Vous avez souvent endendu parler de macros, mais vous ne savez pas du tout comment en construire une. Voici la marche à suivre pour votre toute première macro.

Une macro, en quelque sorte va vous permettre d'automatiser des actions répétitives. Ca va de la simple petite macro qui sélectionne tout le texte et le met en gras automatiquement, jusqu'à la macro très complexe qui permet de choisir un client dans une base de données Access, de l'importer dans Word, dans des zones prédéfinies de formulaires complexes.

Quel que soit votre niveau, vous pouvez construire et utiliser des macros. Mais il y a des limites : Si vous êtes vraiment débutant en Word, les subtilités des macros vous échapperont certainement - Et même si vous êtes un utilisateur confirmé, voire HelpDesk, il est possible que certaines macros soient tellement complexes à mettre en oeuvre que vous aurez besoin de l'aide d'un programmeur professionnel.

En effet, il y a une marge ENORME entre une petite macro de quelques lignes qui fait de menus détails, tels que justement la mise d'un texte en gras, avec la programmation de modules complexes, composés de multiples procédures et fonctions complexes, faisant appel à des notions pointues de programmation.

Mettons donc grâce à ce chapitre le premier orteil dans l'océan Visual Basic pour Application !

Pour suivre pas à pas ce mode d'emploi, je vous conseille fortement d'imprimer cette page pour l'avoir à côté de votre PC pendant que vous essayez de réaliser cette macro.

Premier : Créer une macro en l'enregistrant

Pour cet exemple, je vous propose d'écrire une petite macro toute minable qui se contente d'écrire automatiquement CA MARCHE dans votre document.

  1. Allez dans un nouveau document
  2. Faites Outils/Macros/Nouvelle Macro
  3. Ecrivez dans la zone "Nom de la macro" : MaPremiereMacro
  4. Choisissez "Tous les documents (Normal.dot)" dans la zone "Enregistrer la macro dans"
    Ne mettez PAS d'ESPACE entre les mots, sinon, CA NE MARCHE PAS
  5. Cliquez sur OK
    Maintenant, vous êtes en train d'enregistrer votre macro. C'est à dire que vous êtes comme dans un studio d'enregistrement. Dans un studio d'enregistrement, il ne faut PAS LE MOINDRE BRUIT, et bien, lors de l'enregistrement d'une macro, IL NE FAUT PAS FAIRE LA MOINDRE CHOSE que vous ne voulez pas enregistrer
  6. Ecrivez  Ca marche !
  7. Faites Outils/Macros/Arrêter l'enregistrement.

OUF ! Vous pouvez respirer. L'enregistrement de la macro est terminé. Il ne reste plus qu'a voir si cette macro fonctionne !

  1. Effacez votre texte, ou demandez un nouveau document
  2. Faites Outils/Macros/Macros
  3. Cliquez sur  MaPremiereMacro
  4. Cliquez sur "Exécuter"

ET VOILA... SI tout s'est bien passé, vous devriez voir apparaître à l'écran Ca marche ! Ce n'est pas plus compliqué que ça. Bravo !

Quand on débute en macros, on OUBLIE TOUT LE TEMPS cette dernière opération... Et quand on l'oublie, et bien on continue d'enregistrer encore et encore... et... Rien ne marche et dans le pire des cas, on finit par faire planter complètement Word, voire le PC complet...

Deuxième : Créer une macro en l'écrivant

Cette fois, nous allons entrer de plain pied dans l'environnement de programmation VBA. Nous allons afficher une petite boîte de dialogue comme ceci :

L'instruction pour créer une boîte de dialogue comme celle-ci est MsgBox "Ca Marche".

  1. Quittez Word, ne sauvegardez rien, et revenez dans Word (Simplement pour être sûr que nous avons bien les mêmes écrans)
  2. Faites Outils/Macros/Visual Basic Editor
  3. Dans la partie de gauche, vous devriez voir ceci :
    Si ce n'est pas le cas, faites Affichage/Explorateur de projets
  4. Cliquez avec le bouton droit sur Project (Document1), et choisissez Insertion/Module.
    Vous avez maintenant sur toute la partie de droite un éditeur de texte (une page blanche dans lquelle vous pouvez écrire). Word à également créé dans la partie de gauche Modules et Module1
  5. Ecrivez dans cette partie de droite:
    Sub AfficheMessage
  6. Appuyez sur ENTER. Normalement, Word a complété votre texte comme ceci :
    Sub AfficheMessage()

    End Sub
  7. Complétez le code en écrivant vous même MsgBox "Ca Marche", comme ceci :
    Sub AfficheMessage()
       MsgBox "Ca Marche"
    End Sub
  8. La macro est maintenant écrite. Cliquez quelque part entre Sub AfficheMessage et End Sub, et appuyez sur la touche F5. Le message devrait apparaître, comme ceci :

Et voilà... vous avez écrit vous même votre première macro, et exécuté ! Félicitations ! Vous avez donc appris plusieurs choses :

  1. MsgBox permet d'afficher des messages
  2. Le texte affiché avec MsgBox est écrit entre guillemets
  3. Les macros commencent par Sub QuelqueChose() et se terminent par End Sub
  4. On peut exécuter les macros directement depuis l'environnement VBA avec la touche F5

Mais on peut bien sûr exécuter cette macro depuis Word... Marche à suivre :

  1. Quittez l'environnement Visual Basic (Fichier/Fermer et retourner à Microsoft Word)
  2. Outils/Macros/Macros, et cliquez 2 fois sur AfficheMessage (Ou cliquez une seule fois dessus, et Exécuter)

Et voilà... Ce n'est pas plus compliqué que cela !

Troisième : Modifier à la main une macro enregistrée

Nous allons faire une macro toute simple avec l'enregistreur de macros, et ensuite la corriger à la main. Par exemple, notre macro va écrire à l'intérieur de Word :

Un
Deux

  1. Quittez Word, ne sauvegardez rien, et revenez dans Word (Simplement pour être sûr que nous avons bien les mêmes écrans)
  2. Faites Outils/Macros/Nouvelle Macro
  3. Nom de la macro : MacroTest
  4. Enregistrer la macro dans : Document1
  5. Cliquez sur OK
    : Vous êtes en train d'enregistrer !
  6. Ecrivez simplement :
    Un
    Deux
  7. Outils/Macros/Arrêter l'enregistrement
  8. Faites Outils/Macros/Visual basic Editor
  9. Dans la partie de gauche, vers le haut (dans l'explorateur de projets), cliquez sur le petit + à côté de Modules
  10. Ca fait apparaître NewMacros. Cliquez 2 fois dessus : Ca fait apparaître votre macro enregistrée, comme ceci :
    Sub MacroTest()
    '
    ' MacroTest Macro
    ' Macro enregistrée le 05.01.2001 par Michel
    '

    Selection.TypeText Text:="Un"
    Selection.TypeParagraph
    Selection.TypeText Text:="Deux"
    End Sub
  11. Remplacez
    Selection.TypeText Text:="Un"
    par
    Selection.TypeText Text:="Le radeau de la méduse"
  12. Faites Fichier/Fermer et retourner à Microsoft Word
  13. Descendez un peu plus bas que votre Deux (en appuyant sur Enter 2 ou 3 fois)
  14. Faites Outils/Macros/Macros, et exécutez MacroTest

Et voilà ! Si tout s'est bien passsé, votre écran devrait ressembler à ceci :

Un
Deux

Le radeau de la méduse
Deux

Vous avez réussi à corriger à la main une macro préenregistrée ! Vous avez appris de nouvelles choses :

  1. C'est une manière très sympathique d'apprendre petit à petit la syntaxe de visual basic
  2. Selection.TypeText Text:="Truc machin" permet d'écrire du texte dans Word
  3. Selection.TypeParagraph fait comme si on appuyait sur ENTER
  4. Il y a certaines lignes en vert, qui commencent par une apostrophe ('). Ce sont des lignes de commentaires. C'est à dire que ces lignes sont totalement ignorées par Visual Basic, et vou permettent de commenter votre code.