Word ti consente di utilizzare i caratteri installati nel sistema che stai utilizzando. I caratteri vengono installati in Windows, in modo che siano disponibili non solo per Word, ma per tutti i programmi installati sul sistema.

Quando si crea un documento sul sistema, è facile sapere quali caratteri vengono utilizzati: l’elenco dei caratteri è limitato a quelli disponibili nel sistema. Se ricevi un documento da una persona diversa, tuttavia, nel sistema dell’altra persona potrebbero essere installati caratteri diversi da te. Ciò significa che il loro documento Word potrebbe essere formattato con caratteri che non hai nemmeno sul tuo sistema.

Se vuoi generare un elenco di caratteri usati all’interno di un documento (al contrario di un elenco di caratteri disponibili su un sistema), hai un paio di scelte. Prima di tutto, puoi aprire il documento di Word in un editor di testo e guardarti intorno nelle parti del documento che normalmente non vedi in Word. Verso la fine del file dovresti vedere un elenco di caratteri utilizzati nel documento. Se lo fai, tuttavia, dovresti stare molto attento a non apportare modifiche al documento di Word mentre è aperto nel tuo editor di testo. In questo modo è possibile rendere facilmente il documento non più utilizzabile in Word.

Una soluzione basata su Word consiste semplicemente nel guardare attraverso ogni carattere in un documento e verificare quale carattere viene utilizzato per formattare il carattere. È necessario un approccio carattere per carattere perché ogni carattere potrebbe essere formattato con un carattere diverso e VBA non consente di accedere a una raccolta di caratteri in relazione al documento stesso: sembra che tale raccolta non venga mantenuta. Quindi, il più sicuro (e il più lento)

il metodo consiste semplicemente nel passare da un personaggio all’altro e creare il proprio elenco. La seguente macro VBA esegue l’operazione:

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

Ovviamente, più lungo è il tuo documento, più tempo impiegherà la macro per finire. (Ho eseguito la macro su un documento di 1.100 pagine e ci sono voluti circa 46 minuti. Su un documento di 5 pagine ci è voluto meno di un minuto.) Al termine, la macro crea un nuovo documento che contiene un elenco ordinato dei caratteri utilizzati.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti WordTips), ho preparato una pagina speciale che include informazioni utili.

WordTips è la tua fonte di formazione economica su Microsoft Word.

(Microsoft Word è il software di elaborazione testi più popolare al mondo.) Questo suggerimento (13313) si applica a Microsoft Word 2007, 2010 e 2013.

Puoi trovare una versione di questo suggerimento per la vecchia interfaccia del menu di Word qui: