La capacité de créer et de gérer des styles est l’une des fonctionnalités fortes de Word. Les styles vous permettent d’appliquer rapidement et facilement une mise en forme cohérente dans tout votre document et de mettre à jour cette mise en forme à mesure que vos besoins changent.

Word fournit plusieurs styles intégrés (prédéfinis), et vous pouvez en ajouter d’autres selon vos besoins. À un moment donné, vous souhaiterez peut-être déterminer quels styles ne sont pas utilisés dans un document. Cette liste pourrait ensuite être utilisée pour déterminer les styles que vous pourriez facilement supprimer, simplement parce qu’ils ne sont plus nécessaires.

Il n’existe aucun moyen intrinsèque de créer une liste de styles inutilisée dans Word.

Au lieu de cela, vous devez créer une macro pour faire le travail à votre place. Vous pourriez penser que la création d’une telle macro serait une tâche simple de regarder les styles que Word pense être utilisés, puis de les comparer aux styles qui sont définis. Le problème avec cette approche est que la propriété InUse de VBA (qui s’applique aux objets Style) est utilisée à plusieurs fins. La définition officielle de la propriété InUse est qu’elle est vraie si l’une des deux conditions suivantes est remplie:

  • Le style est un style intégré qui a été modifié ou appliqué dans le document.

  • Le style est un style défini par l’utilisateur qui a été créé dans le document.

Cela signifie que la propriété InUse n’indique pas si un style est réellement utilisé dans le document. Vous pourriez faire quelque chose pour la définition d’un style sans l’appliquer réellement, et ce style serait marqué comme « en cours d’utilisation » même s’il n’y a pas de texte dans le document utilisant réellement le style.

Toutefois, il est possible de générer une liste de styles non utilisés à l’aide des propriétés InBuilt et InUse dans une macro. La macro VBA suivante utilise cette approche:

Sub CreateStyleList()

Dim docThis As Document     Dim styItem As Style     Dim sBuiltIn(499) As String     Dim iStyBICount As Integer     Dim sUserDef(499) As String     Dim iStyUDCount As Integer     Dim sInUse(499) As String     Dim iStyIUCount As Integer     Dim iParCount As Integer     Dim J As Integer, K As Integer     Dim sParStyle As String     Dim bInUse As Boolean          ' Ref the active document     Set docThis = ActiveDocument          ' Collect all styles being used     iStyIUCount = 0     iParCount = docThis.Paragraphs.Count     iParOut = 0     For J = 1 To iParCount         sParStyle = docThis.Paragraphs(J).Style         For K = 1 To iStyIUCount             If sParStyle = sInUse(K) Then Exit For         Next K         If K = iStyIUCount + 1 Then             iStyIUCount = K             sInUse(iStyIUCount) = sParStyle         End If     Next J          iStyBICount = 0     iStyUDCount = 0     ' Check out styles that are "in use"

For Each styItem In docThis.Styles         'see if in those being used         bInUse = False         For J = 1 To iStyIUCount             If styItem.NameLocal = sInUse(J) Then bInUse = True         Next J         'Add to those not in use         If Not bInUse Then             If styItem.BuiltIn Then                 iStyBICount = iStyBICount + 1                 sBuiltIn(iStyBICount) = styItem.NameLocal             Else                 iStyUDCount = iStyUDCount + 1                 sUserDef(iStyUDCount) = styItem.NameLocal             End If         End If     Next styItem          'Now create the output document     Documents.Add          Selection.TypeText "Styles In Use"

Selection.TypeParagraph     For J = 1 To iStyIUCount         Selection.TypeText sInUse(J)

Selection.TypeParagraph     Next J     Selection.TypeParagraph     Selection.TypeParagraph          Selection.TypeText "Built-in Styles Not In Use"

Selection.TypeParagraph     For J = 1 To iStyIUCount         Selection.TypeText sBuiltIn(J)

Selection.TypeParagraph     Next J     Selection.TypeParagraph     Selection.TypeParagraph          Selection.TypeText "User-defined Styles Not In Use"

Selection.TypeParagraph     For J = 1 To iStyIUCount         Selection.TypeText sUserDef(J)

Selection.TypeParagraph     Next J     Selection.TypeParagraph     Selection.TypeParagraph End Sub

La macro examine d’abord chaque paragraphe du document pour déterminer les noms des styles réellement utilisés dans le document. Ces informations sont stockées dans le tableau sInUse. Ensuite, la macro commence à parcourir la liste que Word pense être utilisée – ce sont les styles qui appartiennent à la collection Styles. Si le style n’est pas dans le tableau sInUse, il est ajouté soit au tableau sBuiltIn (pour les styles intégrés), soit au tableau sUserDef (pour les styles définis par l’utilisateur). Lorsque les comparaisons sont effectuées, un nouveau document est créé qui répertorie les résultats.

_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 (1488) s’applique à Microsoft Word 97, 2000, 2002 et 2003.