Считать слова в документе Microsoft Word шрифтом? - PullRequest
0 голосов
/ 15 марта 2012

У меня большой документ с примерами кода. Я хочу знать количество слов для всего текста в шрифте Calibri (Body), независимо от его размера.Я хочу игнорировать Консоласа и т. Д.

У меня есть макрос, который подсчитывает курсив (опубликован в качестве примера), но не может его запустить.

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

Любая идея, как изменитьэто Консолам?

Ответы [ 3 ]

2 голосов
/ 15 марта 2012

Изменение вашего кода, чтобы вы могли его понять, вот решение, которое работает для меня

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
1 голос
/ 15 марта 2012

Для справки, изменение вашего кода всего на чуть сработало для меня:

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
0 голосов
/ 13 апреля 2016

использование

ActiveDocument.ComputeStatistics(wdStatisticWords)

или

ActiveDocument.ComputeStatistics(0)
...