L’un des avantages de la programmation des macros VBA est que le langage est orienté objet. Cela signifie que vous pouvez accéder à chaque partie de votre document à l’aide d’objets et de collections d’objets. En d’autres termes, vous pouvez manipuler des paragraphes sans jamais avoir besoin de les sélectionner.

Par exemple, disons que vous vouliez accéder à chaque paragraphe d’un document, à son tour, et effectuer un traitement sur le texte de ce paragraphe.

Étant donné que chaque paragraphe est un objet distinct dans le document, cela est relativement facile. Tous les objets de paragraphe sont accessibles dans le cadre de la collection Paragraphs. Le code suivant fera l’affaire:

iParCount = ActiveDocument.Paragraphs.Count For J = 1 To iParCount     sMyPar = ActiveDocument.Paragraphs(J).Range.Text     [Add processing comments to manipulate sMyPar]

ActiveDocument.Paragraphs(J).Range.Text = sMyPar Next J

La première ligne du code définit iParCount égal au nombre de paragraphes dans le document actuel. La boucle commençant à la deuxième ligne effectue alors le travail principal dans la macro. La troisième ligne définit la chaîne sMyPar égale au texte dans le paragraphe spécifié. (Lorsque J est égal à 1, vous travaillez avec le premier paragraphe. Lorsque J est égal à 2, c’est le deuxième paragraphe – et ainsi de suite.)

Une fois le traitement de sMyPar terminé, la ligne suivante définit le texte du document comme égal au texte modifié dans la chaîne sMyPar.

Le code ci-dessus prend cependant un certain temps à s’exécuter. Il serait plus rapide d’accéder à la collection Paragraphs en utilisant une boucle For Each, comme illustré ici:

For Each p In ActiveDocument.Paragraphs     sMyPar = p.Range.Text     [Add processing comments to manipulate sMyPar]

p.Range.Text = sMyPar Next p

Vous pouvez rendre votre code encore plus rapide si vous ne modifiez les paragraphes que si votre traitement indique qu’une modification est nécessaire.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites WordTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / wordribbon-WordTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

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 (12177) s’applique à Microsoft Word 2007, 2010, 2013 et 2016. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu de Word ici:

link: / word-Accessing_Paragraphs_in_a_Macro [Accès aux paragraphes dans une macro].