Conta le parole in un documento di Microsoft Word per font?
Domanda
Ho un documento di grandi dimensioni con campioni di codice in. Voglio conoscere il conteggio delle parole per tutto il testo in font calibri (corpo), indipendentemente dalle dimensioni.Voglio ignorare consola, ecc.
Ho una macro che conta in corsivo (pubblicato come esempio) ma non riesce a farlo funzionare.
Sub IgnoreItalics()
Dim lngWord As Long, lngCountIt As Long
lngCountIt = 0
For lngWord = 1 To ActiveDocument.Words.Count
If ActiveDocument.Words(lngWord).Italic Then
lngCountIt = lngCountIt + 1
End If
Next lngWord
MsgBox "Number of non-italic words: " & _
ActiveDocument.BuiltInDocumentProperties("Number of words") -
lngCountIt
End Sub
.
Qualche idea come cambiarlo in Consolas?
Soluzione
Modifica del tuo codice in modo da sperma di capirlo, ecco una soluzione che funziona per me
Sub CountTypeface()
Dim lngWord As Long
Dim lngCountIt As Long
Const Typeface As String = "Calibri"
For lngWord = 1 To ActiveDocument.Words.Count
'Ignore any document "Words" that aren't real words (CR, LF etc)
If Len(Trim(ActiveDocument.Words(lngWord))) > 1 Then
If ActiveDocument.Words(lngWord).Font.Name = Typeface Then
lngCountIt = lngCountIt + 1
End If
End If
Next lngWord
MsgBox "Number of " & Typeface & " words: " & lngCountIt
End Sub
. Altri suggerimenti
Per il record, cambia il tuo codice solo a tad ha funzionato per me:
Sub CountFonts()
Dim lngWord As Long, lngCountIt As Long
lngCountIt = 0
For lngWord = 1 To ActiveDocument.Words.Count
If ActiveDocument.Words(lngWord).Font.Name = "Calibri" Then
lngCountIt = lngCountIt + 1
End If
Next lngWord
MsgBox "Number of non-Calibri words: " & _
ActiveDocument.BuiltInDocumentProperties("Number of words") - lngCountIt
End Sub
. Usa
ActiveDocument.ComputeStatistics(wdStatisticWords)
.
o
ActiveDocument.ComputeStatistics(0)
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow