This version of Chroniques de langue has been archived and won't be updated before it is permanently deleted.
Please consult the revamped version of Chroniques de langue for the most up-to-date content, and don't forget to update your bookmarks!
J’entends souvent des collègues parler de macros qu’ils ont créées ou trouvées et qu’ils voudraient mettre en commun. Ma chronique ne s’adresse pas à eux, mais plutôt aux personnes qui n’ont jamais fait de macros. Je vais leur montrer à quel point c’est facile d’en créer.
À l’origine, macro voulait dire macro-instruction, c’est-à-dire une séquence d’actions en une seule commande. Par la suite, les langages de macros sont devenus de véritables langages de programmation très puissants. Ils peuvent maintenant faire bien d’autres choses que des actions limitées au logiciel d’où ils proviennent – par exemple, une macro de Word pourrait trouver un fichier créé par Photoshop et le supprimer.
Une mise en garde avant d’entrer dans le vif du sujet : même si une macro fonctionne bien pour vous, rien ne garantit qu’elle fonctionnera bien ailleurs.
J’utilise présentement la version 2007 de Microsoft Word comme logiciel de traitement de texte. Contrairement aux versions précédentes, quand on installe MS-Office 2007, la partie macros ne s’installe pas. Il est donc probable qu’une partie de ce que je vais montrer ici ne corresponde pas à votre installation actuelle.
Parmi les onglets de mon logiciel, le dernier se nomme Développeur. Pour créer une macro, cliquez sur cet onglet.
Les macros de Word se déclinent en deux niveaux. Au premier niveau, le logiciel enregistre tout simplement la dernière opération. Pour reproduire l’opération, il faut lancer la macro ou employer un raccourci-clavier.
Pour les besoins de la chronique, je vais créer une macro qui permet d’inverser deux lettres que j’ai tendance à intervertir. Je tape trop souvent ordianteur au lieu de ordinateur. Je vais donc positionner le curseur juste avant la première des lettres interverties (le a de ordianteur) et lancer la création d’une macro, en cliquant sur Enregistrer une macro.
Le logiciel propose un nom par défaut : Macro1, Macro2, etc. Si je crée souvent des macros, un tel nom ne m’aidera pas à me souvenir de la différence entre Macro1 et Macro44, par exemple. C’est pourquoi je nommerai ma macro bdtInverseCaracteres*.
Je veux aussi attribuer un raccourci-clavier à cette macro. Attention! Si j’utilise un raccourci-clavier déjà associé à une fonction de Word, la nouvelle macro s’exécutera au lieu de la fonction attendue. Par exemple Ctrl+G, Ctrl+U et Ctrl+I sont les raccourcis-claviers permettant d’insérer respectivement le gras, le souligné et l’italique.
J’attribue donc un raccourci-clavier que je n’utilisais jamais, soit Ctrl+O (touche Ctrl et touche O enfoncées simultanément).
J’entre le raccourci-clavier voulu, puis je clique sur le bouton Attribuer, dans le coin inférieur gauche.
La boîte Touches actuelles contient maintenant mon raccourci-clavier. Il suffit de cliquer sur le bouton Fermer pour revenir au texte.
Je supprime le a devant le n, puis j’insère un a après le n. Ensuite, je mets fin à l’enregistrement de la macro (Arrêter l’enregistrement).
La macro est complète. Elle me permet maintenant de procéder à ces interventions grâce à mon raccourci-clavier Ctrl+O… mais seulement pour ces deux lettres.
Si je veux généraliser ma macro, je dois passer au deuxième niveau, qui me permet de modifier une macro existante, voire d’en créer une de but en blanc dans l’éditeur de Visual Basic for Applications.
Les macros deviennent toutes une sous-routine d’un ensemble.
Voici le code qu’a généré l’enregistrement de ma première macro :
Sub bdtInverseCaracteres()
’
’ bdtInverseCaracteres Macro
’
’
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeText Text:="a"
End Sub
En français, maintenant. Grâce à la macro, le logiciel efface le premier caractère, se déplace d’un caractère sur la droite, puis insère un a à droite. Pour généraliser la macro, je voudrais pouvoir inverser n’importe quelle lettre. Je vais donc ajouter quelques lignes avant celle qui commande l’effacement du premier caractère.
Voici le code de la macro modifiée :
Sub bdtInverseCaracteres()
’
’ bdtInverseCaracteres Macro
’
’
Dim Caractere As String
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Caractere = Selection.Text
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeText Text:=Caractere
End Sub
Qu’est-ce que j’ai fait? J’ai ajouté trois lignes. D’abord, l’énoncé Dim déclare une variable qui servira de contenant pour le caractère. La ligne qui suit sélectionne un caractère à droite du curseur et la suivante place le caractère dans la variable. Ensuite, dans l’avant-dernière ligne, on a remplacé le fait de toujours insérer a par l’insertion du caractère interverti, quel qu’il soit (la variable Caractere).
Une fois la macro terminée, je peux retourner à mon texte en sélectionnant l’option Fermer et retourner à Microsoft Word du menu Fichier.
Voilà. C’était un cours en accéléré sur la création de macros. J’aurais pu vous fournir des milliers de détails supplémentaires sur le sujet. J’espère simplement vous avoir donné le goût de vous approprier la technologie sous-jacente aux macros. Vous êtes mal pris? Vous pouvez toujours consulter le fichier d’aide de Word, mais sachez qu’il existe de nombreux sites bien faits infiniment plus clairs que cette « aide ».
Je suggère souvent aux gens de faire une macro qui enregistre une séquence de commandes en direct, puis d’examiner le code. À la longue, on s’habitue et on voit si on aime ça ou pas.
Je vous souhaite un printemps rempli de macrodécouvertes.
© Public Services and Procurement Canada, 2024
TERMIUM Plus®, the Government of Canada's terminology and linguistic data bank
Writing tools – Chroniques de langue
A product of the Translation Bureau