Word vous permet d’utiliser les polices installées sur le système que vous utilisez. Les polices sont installées dans Windows, de sorte qu’elles sont disponibles non seulement pour Word, mais pour tous les programmes installés sur votre système.

Lorsque vous créez un document sur votre système, il est facile de savoir quelles polices sont utilisées – la liste des polices est limitée à celles disponibles sur le système. Si vous recevez un document d’une autre personne, cependant, le système de l’autre personne peut avoir des polices différentes installées que vous. Cela signifie que leur document Word peut être formaté avec des polices que vous n’avez même pas sur votre système.

Si vous souhaitez générer une liste de polices utilisées dans un document (par opposition à une liste de polices disponibles sur un système), vous avez plusieurs choix. Tout d’abord, vous pouvez ouvrir le document Word dans un éditeur de texte et parcourir les parties du document que vous ne voyez pas normalement dans Word. Vers la fin du fichier, vous devriez voir une liste des polices utilisées dans le document. Si vous faites cela, vous devez cependant faire très attention à ne pas apporter de modifications au document Word lorsqu’il est ouvert dans votre éditeur de texte. Cela peut facilement rendre le document plus utilisable dans Word.

Une solution basée sur Word consiste simplement à parcourir chaque caractère d’un document et à vérifier quelle police est utilisée pour formater le caractère. Une approche caractère par caractère est nécessaire car chaque caractère peut être formaté avec une police différente et VBA ne vous permet pas d’accéder à une collection de polices par rapport au document lui-même – il semble qu’aucune collection de ce type ne soit conservée. Ainsi, le plus sûr (et le plus lent)

La méthode consiste simplement à parcourir chaque personnage et à créer votre propre liste. La macro VBA suivante accomplit la tâche:

Public Sub ListFontsInDoc()

Dim FontList(199) As String     Dim FontCount As Integer     Dim FontName As String     Dim J As Integer, K As Integer, L As Integer     Dim X As Long, Y As Long     Dim FoundFont As Boolean     Dim rngChar As Range     Dim strFontList As String

FontCount = 0     X = ActiveDocument.Characters.Count     Y = 0     ' For-Next loop through every character     For Each rngChar In ActiveDocument.Characters         Y = Y + 1         FontName = rngChar.Font.Name         StatusBar = Y & ":" & X         ' check if font used for this char already in list         FoundFont = False         For J = 1 To FontCount            If FontList(J) = FontName Then FoundFont = True         Next J         If Not FoundFont Then             FontCount = FontCount + 1             FontList(FontCount) = FontName         End If     Next rngChar

' sort the list     StatusBar = "Sorting Font List"

For J = 1 To FontCount - 1         L = J         For K = J + 1 To FontCount             If FontList(L) > FontList(K) Then L = K         Next K         If J <> L Then             FontName = FontList(J)

FontList(J) = FontList(L)

FontList(L) = FontName         End If     Next J

StatusBar = ""

' put in new document     Documents.Add     Selection.TypeText Text:="There are " & _       FontCount & " fonts used in the document, as follows:"

Selection.TypeParagraph     Selection.TypeParagraph     For J = 1 To FontCount         Selection.TypeText Text:=FontList(J)

Selection.TypeParagraph     Next J End Sub

Évidemment, plus votre document est long, plus la macro mettra du temps à se terminer. (J’ai exécuté la macro sur un document de 1 100 pages et cela a pris environ 46 minutes. Sur un document de 5 pages, cela a pris moins d’une minute.) Une fois terminé, la macro crée un nouveau document qui contient une liste triée des polices utilisées.

_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 (13313) s’applique à Microsoft Word 2007, 2010 et 2013.

Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu de Word ici:

link: / word-Creating_a_Document_Font_List [Création d’une liste de polices de document].