Comment commencer à utiliser des macros dans Word
Fatigué d'effectuer des tâches répétitives dans Microsoft Word? Enterré dans le programme est un puissant outil d'automatisation qui peut vous enlever ces tâches. Nous parlons de macros, et bien que la fonctionnalité repose sur Visual Basic pour Applications (VBA) de Microsoft, vous pouvez l'utiliser même si l'idée de codage vous donne les heebie-jeebies.
En cliquant sur un bouton, Word enregistrera vos actions, générant une macro que vous pourrez rejouer aussi souvent que vous le souhaitez. Si vous êtes aventureux, vous pouvez facilement modifier la macro pour un degré d'automatisation supplémentaire.
Ici, nous allons vous montrer un exemple simple mais utile: Comment automatiser la fonction Rechercher et remplacer de Word.
Enregistrer la macro
Dans cet exemple, vous êtes le président estimé de la Society for the Preservation of Antique Dental Appliances. Vous avez des dizaines de documents Word sur les prothèses dentaires historiques et autres, tous avec le nom de la société en évidence. Puis, soudainement, le conseil vote pour changer le nom de la Dental Antiques Preservation League. Vous avez maintenant besoin d'un moyen simple de mettre à jour les documents.
Vous pouvez commencer avec un nouveau document vierge ou ouvrir un existant. Si vous ne l'avez pas déjà fait, vous devrez activer l'onglet Développeur.
Accédez à Fichier> Options> Personnaliser le ruban . Sur la droite, sous Onglets principaux , cochez l'option Développeur . Sélectionnez OK et quittez.
Créons maintenant notre macro.
- Cliquez sur Développeur> Enregistrer une macro .
- Vous serez invité à nommer la macro. Entrez «ChangeSocietyName» ou tout autre nom qui vous convient. Lorsque vous nommez des macros, évitez les espaces, les points, les points d'exclamation et les caractères spéciaux, sinon vous obtiendrez un message d'erreur. Vous pouvez utiliser des nombres, mais le premier caractère doit être une lettre.
- Vous pouvez affecter la macro à un bouton et / ou à un raccourci clavier, mais ce n'est pas obligatoire. Si vous choisissez Button, Word vous permettra de l'ajouter à la barre d'outils d'accès rapide. Vous pouvez également ajouter une brève description de la macro.
- Cliquez sur OK et Word enregistrera maintenant vos actions. Appuyez sur Ctrl + H pour afficher la boîte de dialogue Rechercher et remplacer .
- Entrez «Society for the Preservation of Antique Dental Appliances» dans Find et «Dental Antique Preservation League» dans Replace.
- Cliquez sur Remplacer tout pour exécuter l'opération Rechercher et remplacer. C'est la seule action que vous souhaitez enregistrer. Peu importe si la macro remplace réellement un texte. Le but est de le sauvegarder pour d'autres documents.
- Ceci est important: cliquez sur Développeur> Arrêter l'enregistrement . Sinon, la macro inclura toutes les actions suivantes.
Voyons maintenant votre travail. Ouvrez un document contenant le nom de la société. Cliquez sur Développeur> Macros . Si vous double-cliquez sur ChangeSocietyName, Word effectuera automatiquement l'opération Rechercher et remplacer.
Conseil: lorsque vous enregistrez la macro, vous devrez peut-être effectuer une action que vous ne souhaitez pas enregistrer. Par exemple, vous souhaiterez peut-être copier et coller du texte dans la boîte de dialogue Rechercher et remplacer plutôt que de le saisir manuellement. Pas de problème: cliquez simplement sur Développeur> Suspendre l'enregistrement , copiez et collez le texte, puis cliquez sur Développeur> Reprendre l'enregistreur . Ensuite, vous pouvez terminer l'enregistrement de la macro comme décrit ci-dessus.
Bien que nous nous soyons concentrés ici sur Microsoft Word, vous pouvez également utiliser des macros pour augmenter la productivité dans Excel . Et il existe de nombreuses macros permettant de gagner du temps pour Microsoft OneNote .
Plonger dans le code
Nous allons maintenant approfondir notre nouvelle macro Word. Allez dans Développeur> Macros , mais au lieu de double-cliquer sur la macro, sélectionnez-la et cliquez sur Modifier . Cela ouvre l'éditeur Visual Basic, un environnement autonome pour la création d'applications VBA.
Cela peut sembler intimidant, mais vous pouvez ignorer les menus et la plupart des panneaux. Concentrez-vous plutôt sur la fenêtre contenant le code. Comme vous pouvez le voir, Word vient d'écrire une macro qui effectue la recherche et le remplacement.
Sub ChangeSocietyName()
'
' ChangeSocietyName Macro
' Rename Society for the Preservation of Antique Dental Appliances
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "Society for the Preservation of Antique Dental Appliances"
.Replacement.Text = "Dental Antiques Preservation League"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Expliquons ce qui se passe ici.
Le «sous» sur la première ligne est l'abréviation de «sous-programme», un petit programme qui peut s'exécuter seul ou dans le cadre d'une application VBA plus grande. Les lignes précédées de guillemets simples sont destinées aux commentaires. Les guillemets indiquent à VBA d'ignorer toutes les instructions sur ces lignes.
Ensuite, nous arrivons à l'essentiel du code: le code qui effectue l'opération Rechercher et remplacer . Comme vous pouvez le voir, il spécifie des valeurs pour chaque option dans la boîte de dialogue Rechercher et remplacer, y compris le texte et le texte de remplacement entre guillemets. La commande Selection.Find.Execute vers la fin équivaut à cliquer sur le bouton «Tout remplacer».
Modifier la macro
Pour utiliser des macros, vous n'avez pas à manipuler le code ni même à le regarder. Mais vous pouvez tirer le meilleur parti de cette fonction si vous êtes prêt à vous lancer. Par exemple, supposons que vous fassiez une faute de frappe lors de l'enregistrement de la macro. Au lieu de le réenregistrer, vous pouvez accéder à Visual Basic et le corriger.
Vous pouvez également modifier la macro pour la rendre plus utile, et c'est ce que nous ferons ici. Lorsque vous exécutez Rechercher et remplacer, que ce soit manuellement ou via une macro, Word se souvient du texte de recherche et de remplacement. La prochaine fois que vous ouvrirez la boîte de dialogue Rechercher et remplacer, elle ressemblera à ceci.
Il serait préférable d'effacer les valeurs pour obtenir une boîte de dialogue propre. Nous le ferons avec une deuxième macro, sauf que cette fois, nous le ferons directement dans Visual Basic.
- Dans l'éditeur Visual Basic, sélectionnez le sous-programme entier, de la première ligne à End Sub. Appuyez sur Ctrl + C pour le copier.
- Placez le curseur sous End Sub et appuyez sur Ctrl + V. Vous venez de dupliquer le sous-programme.
- Changez le nom de ChangeSocietyName en ClearFindReplace (ou tout autre nom qui vous convient). Ceci est important car VBA générera un message d'erreur si vous essayez d'exécuter des macros avec des noms en double.
- Dans les valeurs .Text et Replacement.Text , supprimez le texte mais laissez les guillemets. Essentiellement, vous dites à Word de ne rien trouver et de le remplacer par rien, mais vous effacez également ces valeurs.
Le résultat devrait ressembler à ceci:
Sub ClearFindReplace()
'
' ClearFindReplace Macro
' Clear Text from Find and Replace dialog
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Nous allons maintenant revenir à la macro ChangeSocietyName. Sous le code Rechercher et remplacer, mais avant End Sub, entrez ClearFindReplace (sans parenthèses à la fin).
C'est vrai: vous n'êtes pas obligé de saisir tout le code que vous venez de créer, juste le nom de la macro.
Sub ChangeSocietyName()
'
' ChangeSocietyName Macro
' Rename Society for the Preservation of Antique Dental Appliances
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "Society for the Preservation of Antique Dental Appliances"
.Replacement.Text = "Dental Antiques Preservation League"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
ClearFindReplace
End Sub
Lorsque Word exécute ChangeSocietyName, il exécute d'abord la fonction Rechercher et remplacer d'origine. Ensuite, il interprétera ClearFindReplace comme une commande pour exécuter la deuxième macro.
Aller plus loin avec VBA
Comme vous pouvez le voir, la fonction d'enregistrement de macros de Word peut vous aider à gagner du temps d'innombrables façons. Vous pouvez créer des macros pour automatiser presque toutes les opérations et dans l'éditeur Visual Basic, vous pouvez modifier les macros, incorporer une macro dans l'autre ou créer un sous-programme qui exécute plusieurs macros les unes après les autres.
Étant donné que VBA est un langage de programmation à part entière, vous pouvez incorporer les sous-programmes dans des applications plus volumineuses avec des variables, des boucles, des instructions conditionnelles, etc. Et une fois que vous avez appris les bases de VBA dans Word, vous pouvez appliquer une grande partie de ces mêmes connaissances pour créer des macros dans Microsoft Excel et Access.
Pour aller plus loin, vous voudrez en savoir plus sur les conventions VBA et l'éditeur Visual Basic, comme comment organiser votre code et comment gérer les bogues. Mais même si vous souhaitez vous en tenir à des fonctions simples comme celles décrites ici, vous pouvez grandement améliorer votre productivité.