1

強調表示されているか、太字で下線が引かれていないテキストを検索し、その基準を満たすドキュメント内の単語数を返す単語カウント関数があります。

ただし、結果は Find 関数によって単語で返された結果とは大幅に異なります。なぜ不一致が発生するのか、誰にもわかりますか? 私は何かを二重に数えていますか?

Sub CountWords()

Dim rngWords As Range
Set rngWords = ActiveDocument.Content
Dim boldCount As Long, highlightCount As Long
Dim wordTotal As Long

Do
With rngWords.Find
    .Highlight = True
    .Forward = True
    .Execute
End With
If rngWords.Find.Found = True Then
    highlightCount = highlightCount + rngWords.Words.Count
Else
    Exit Do
End If
Loop

Set rngWords = ActiveDocument.Content

Do
With rngWords.Find
    .Font.Bold = True
    .Highlight = False
    .Font.Underline = wdUnderlineNone
    .Forward = True
    .Execute
End With
If rngWords.Find.Found = True Then
    boldCount = boldCount + rngWords.Words.Count
Else
    Exit Do
End If
Loop
wordTotal = boldCount + highlightCount
MsgBox "There are " & wordTotal & " words to be spread"
End Sub
4

1 に答える 1

3

Words プロパティは、句読点と段落記号をカウントします。変化する

highlightCount = highlightCount + rngWords.Words.Count

highlightCount = highlightCount + rngWords.ComputeStatistics(wdStatisticWords)

そしてそれらは一致します。

于 2013-03-16T16:34:37.647 に答える