Vous en avez assez d'effectuer des tâches répétitives dans Microsoft Word ? Enfoui dans le programme se trouve un puissant outil d'automatisation qui peut vous décharger de 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 coder vous donne la frousse.
En un clic 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.
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é bien en évidence. Puis, tout à coup, le conseil d'administration vote pour changer le nom en 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 en 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 . À droite, sous Onglets principaux , vérifiez le développeur option. Sélectionnez OK et quittez.
Créons maintenant notre macro.
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.
Astuce : Lorsque vous enregistrez la macro, vous devrez peut-être effectuer une action que vous ne souhaitez pas enregistrer. Par exemple, vous pouvez copier et coller du texte dans la boîte de dialogue Rechercher et remplacer plutôt que de le saisir manuellement. Aucun problème :cliquez simplement sur Développeur > Suspendre l'enregistrement , copiez et collez le texte, puis cliquez sur Développeur > Enregistreur de CV . 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.
Nous allons maintenant approfondir notre nouvelle macro Word. Accédez à 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()
'
' Macro ChangeNomSociété
' Renommer la Société pour la préservation des appareils dentaires anciens
'
Selection.Find.ClearFormatting
Sélection.Rechercher.Replacement.EffacerFormatage
Avec Selection.Find
.Text ="Société pour la préservation des appareils dentaires anciens"
.Replacement.Text ="Ligue de préservation des antiquités dentaires"
.Avant =Vrai
.Wrap =wdFindContinue
.Format =Faux
.MatchCase =Faux
.MatchWholeWord =Faux
.MatchWildcards =Faux
.MatchSoundsLike =Faux
.MatchAllWordForms =Faux
Terminer par
Selection.Find.Execute Remplacer :=wdReplaceAll
Sous-titre de fin
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 importante. Les lignes précédées de guillemets simples sont réservées aux commentaires. Les guillemets indiquent à VBA d'ignorer les instructions sur ces lignes.
Ensuite, nous arrivons au cœur du code :le code qui exécute la fonction Rechercher et remplacer opération. 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. Le Selection.Find.Execute près de la fin équivaut à cliquer sur le bouton "Remplacer tout".
Pour utiliser des macros, vous n'avez pas besoin de jouer avec le code ou même de le regarder. Mais vous pouvez tirer le meilleur parti de cette fonction si vous êtes prêt à plonger. 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 aller dans Visual Basic et le réparer.
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 mémorise le 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 afin d'obtenir une boîte de dialogue propre. Nous ferons cela avec une deuxième macro, sauf que cette fois, nous le ferons directement en Visual Basic.
Le résultat devrait ressembler à ceci :
Sous ClearFindReplace()
'
' Macro ClearFindReplace
' Effacer le texte de la boîte de dialogue Rechercher et remplacer
'
Selection.Find.ClearFormatting
Sélection.Rechercher.Replacement.EffacerFormatage
Avec Selection.Find
.Texte =""
.Replacement.Text =""
.Avant =Vrai
.Wrap =wdFindContinue
.Format =Faux
.MatchCase =Faux
.MatchWholeWord =Faux
.MatchWildcards =Faux
.MatchSoundsLike =Faux
.MatchAllWordForms =Faux
Terminer par
Selection.Find.Execute Remplacer :=wdReplaceAll
Sous-titre de fin
Nous allons maintenant revenir à la macro ChangeSocietyName. Sous le code Rechercher et remplacer, mais avant End Sub, saisissez 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()
'
' Macro ChangeNomSociété
' Renommer la Société pour la préservation des appareils dentaires anciens
'
Selection.Find.ClearFormatting
Sélection.Rechercher.Replacement.EffacerFormatage
Avec Selection.Find
.Text ="Société pour la préservation des appareils dentaires anciens"
.Replacement.Text ="Ligue de préservation des antiquités dentaires"
.Avant =Vrai
.Wrap =wdFindContinue
.Format =Faux
.MatchCase =Faux
.MatchWholeWord =Faux
.MatchWildcards =Faux
.MatchSoundsLike =Faux
.MatchAllWordForms =Faux
Terminer par
Selection.Find.Execute Remplacer :=wdReplaceAll
EffacerRechercherRemplacer
Sous-titre de fin
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.
Comme vous pouvez le constater, la fonction d'enregistrement de macros de Word peut vous aider à gagner du temps de nombreuses 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 une sous-routine qui exécute plusieurs macros l'une après l'autre.
Étant donné que VBA est un langage de programmation à part entière, vous pouvez incorporer les sous-routines dans des applications plus importantes 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é.