上にあるとき、私はいくつかの一般的な句読点やスペースエラーを検出し、強調することで、私はそれらの編集を行っていた後、私は科学論文の校正支援するマクロを記述しようとしていますMS Wordで.Findを使用して二重スペース、句読点の前後のスペースが間違っているなど)。私は、Word 2010VBA - など(変更履歴の記録が
次のコードは、変更履歴の記録がオンになっていないWord文書のために、これまで正常に動作を使用しています。それは赤でTARGETLISTに含まれる文字列のインスタンスを強調:
Sub HighlightTargets2()
Dim range As range
Dim i As Long
Dim TargetList
TargetList = Array(" ", " ,", " .", " ?", " :", " ;", " -", " –", " —", "- ", "– ", "— ", ",,", "..", "::", ";;", "??", ",.", ".,", ",?", "?,", "?.", ".?", ";:", ":;", ";,", ";.", ".;", ".;", "^$(", "^$)", "(^$", "^#(", "^#)", ")^ #", "(^#") ' put list of terms to find here
For i = 0 To UBound(TargetList)
Set range = ActiveDocument.range
With range.Find
.Text = TargetList(i)
.Format = True
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute(Forward:=True) = True
range.HighlightColorIndex = wdRed
Loop
End With
Next
End Sub
問題は、私は唯一の文書のFINALビューで、このようなエラーをチェックする必要があるということです。ただし、このマクロを使用すると、ドキュメント内に「削除された」(削除されたものの、まだ受け入れられていない)文字が残っているとみなされます。あなたはこの絵で
Consider this example (ignore the yellow highlights).を見ることができるように、私は期間を追加し、セミコロンを削除することによって、元の文章を分割することを決めました。したがって、「最終:マークアップを表示」では、インターテロされた期間と削除されたセミコロンが別の(。;)ように見えます。私は「最終」ビュー(「ファイナル:表示マークアップ」ではない)で、マクロしばらく実行した場合でも、.Findメソッドは、まだテキストにあるような「削除」の文字がかかります。これは、次のような結果が発生するため、私のコードが動作しないことを意味します(次の画像を参照)。
一つの可能な回避策は、単語の別のインスタンスを開いてコピーし、(明らかに、「最終」を選択した後に)ファイルからすべてのテキストを貼り付けると、単語の新しいインスタンス上のマクロを実行することです。次に、単語の新しいインスタンスで強調表示されたエラーを探し、手動でそれらを探して修正します。
.Findメソッドが唯一「ファイナル」ビューでドキュメントを表示するときに表示されるテキストで検索すると、変更履歴の記録をオンにしている間に削除されたテキストを無視させる方法はありますか?
おかげで、しかし、私は原作者が私の修正を見ることができるように変更を受け入れずに、これらのファイルを送信する必要があります。 –