Ajout d’une ligne pleine largeur dans une macro (Microsoft Word)
Lors de la saisie dans un document, Drew peut taper trois tirets et lorsqu’il appuie sur Entrée, Word convertit les tirets en une ligne pleine largeur. Il se demande comment il peut faire cela dans une macro.
La fonctionnalité de Word qui entraîne la conversion de trois tirets en une ligne pleine largeur est la mise en forme automatique. C’est juste une des choses qui se passe en arrière-plan pendant que vous tapez: Word analyse en permanence les caractères que vous entrez et les actions que vous effectuez, puis vous «aide» en effectuant la conversion automatiquement. Dans ce cas, il vous suffit – sur une nouvelle ligne – de taper trois tirets et d’appuyer sur la touche Entrée. La conversion en ligne pleine largeur est effectuée immédiatement.
La façon dont AutoFormat fait cela est en fait un peu intéressante. Vous pourriez penser que vous pourriez enregistrer une macro pour voir ce que fait AutoFormat, mais vous ne pouvez pas. Lorsque vous allumez l’enregistreur de macros, tapez trois tirets et appuyez sur Entrée, AutoFormat ne fait absolument rien – les tirets restent et aucune ligne n’apparaît.
Donc, il est utile d’utiliser une méthode de détective différente pour comprendre ce qui se passe. Ce que j’ai fait était d’ouvrir un tout nouveau document et de m’assurer que les caractères non imprimables étaient affichés. (Ceci est nécessaire pour que vous puissiez voir où se trouvent les marques de paragraphe – retours durs – dans le document.) J’ai ensuite tapé quelques chiffres pour pouvoir référencer les paragraphes, mais je me suis assuré qu’il y avait un paragraphe «vide» au milieu. (Voir la figure 1.)
Figure 1. Configuration du test AutoFormat.
Le paragraphe vide (entre les paragraphes 4 et 5) est l’endroit où je vais taper les trois tirets pour tester AutoFormat. Lorsque je les tape et que j’appuie sur Entrée, le résultat est un soulignement sur le paragraphe 4. (Voir la figure 2.)
Figure 2. Un soulignement ajouté par AutoFormat.
Vous pouvez dire que le soulignement est sur le paragraphe 4 en plaçant le point d’insertion sur cette ligne et en affichant la boîte de dialogue Bordures et trame. Lorsque vous affichez la boîte de dialogue avec le point d’insertion sur une autre ligne, il n’y a pas de bordure – c’est uniquement sur le paragraphe 4.
J’ai ensuite ajouté un paragraphe vide entre les paragraphes 7 et 8 afin de voir ce que fait AutoFormat lorsque je tape trois traits de soulignement et appuie sur Entrée. Quand j’ai fait cela, la même chose s’est produite exactement comme indiqué précédemment. La seule différence était que la bordure ajoutée au paragraphe 7 était d’un poids plus lourd (elle était plus épaisse) que la bordure ajoutée au paragraphe 4. (voir figure 3.)
Figure 3. Un soulignement ajouté en tapant trois traits de soulignement.
Ainsi, la saisie de trois tirets et de trois traits de soulignement entraîne l’ajout d’une bordure au paragraphe précédent (après la suppression du paragraphe avec les tirets ou les traits de soulignement), la seule différence étant le poids du trait de soulignement. De plus, si vous regardez attentivement la boîte de dialogue Bordures et trame de fond dans les instances ci-dessus, vous remarquerez que lorsque vous tapez trois tirets, AutoFormat utilise une largeur de bordure de 0,75 point et si vous tapez trois traits de soulignement, il utilise une largeur de bordure de 1,50. points.
La réplication de ce comportement dans une macro est relativement simple. Vous n’avez pas besoin d’ajouter trois tirets ou traits de soulignement, puis de les supprimer ainsi que leur paragraphe; ce serait superflu. Au lieu de cela, la macro peut simplement passer au paragraphe précédent et définir la bordure inférieure de ce paragraphe.
Sub BottomBorder() Selection.MoveUp Unit:=wdParagraph, Count:=1 With Selection.Borders(wdBorderBottom) .LineStyle = wdLineStyleSingle .LineWidth = wdLineWidth075pt .Color = wdColorAutomatic End With End Sub
Si vous souhaitez imiter le comportement d’AutoFormat lorsque vous tapez trois traits de soulignement et appuyez sur Entrée, il vous suffit de modifier l’énumération wdLineWidth075pt dans la macro ci-dessus en wdLineWidth150pt.
WordTips est votre source pour une formation Microsoft Word rentable.
(Microsoft Word est le logiciel de traitement de texte le plus populaire au monde.) Cette astuce (13537) s’applique à Microsoft Word 2007, 2010, 2013, 2016, 2019 et Word dans Office 365.