私は Word 2010 を使用しています。私の知る限り、この問題は Word の最初から存在していました。
ドキュメントにフィールドを作成すると、強制的に更新されるか (たとえば、F9 キーまたは右クリック メニューの選択)、またはファイルを開いたり印刷したりしたときの副作用として、フィールドが更新されます。これはすべて良いことです。フィールドを使用する理由です。もちろん、多くの場合 (ほとんどの場合)、フィールドを更新しても結果のテキストは変更されません。たとえば、{numpages} や相互参照、ファイル名は変更されない可能性があります。
残念ながら、リビジョン追跡をオンにすると、すべてのフィールド更新で古い結果が取り消し線で消され(削除され)、新しい値が挿入されます。これは、値が変更されていない場合でも発生します。開く、閉じる、印刷、更新などを数回繰り返すと、相互参照として次のようになります(この例では、エディターの制限により下線ではなく太字を使用しました)。
セクションを参照2.3.4
2.3.42.3.42.3.4
私の意見では、結果のテキストが変更されていない場合、Word はそれを修正と見なすべきではありません。そもそも Word にそれを実行させる方法があるなら、それを知りたいです。
代わりに、これらの余分な(非)修正をドキュメントから簡単に削除する方法(「実際の」修正はすべて保持したまま)があれば、それが私の問題に対する別の解決策になります。
ありがとう、
ヨシュ
答え1
完全な解決策ではありませんが、更新の直前に追跡されたリビジョンをオフにし、更新が完了した後に再びオンにすることで、重複したリビジョンを回避できます。さらに、マクロをキーボード ショートカットにバインドして、これらの手順を自動的に実行することもできます。
印刷前にフィールドが自動的に更新されている場合、これはあまり役に立ちませんが、オプションメニューでその動作をオフにすることができます。画面チェックを外す印刷前にフィールドを更新する。
編集: フィールドから不要なリビジョンを削除する次のマクロを作成しました。可能であれば、速度の向上が必要になる可能性があります。
Sub RemoveUnchangedFieldTrackedChanges()
Dim oField As Field
Dim oRevision As Revision
For Each oField In ActiveDocument.Fields
For Each oRevision In oField.Parent.Range.Revisions
Select Case oRevision.Type
Case wdRevisionInsert
With oRevision
revisionText = .Range.Text
For Each iRevision In oField.Parent.Range.Revisions
Select Case iRevision.Type
Case wdRevisionDelete
With iRevision
If StrComp(revisionText, iRevision.Range, vbTextCompare) = 0 Then
oRevision.Accept
iRevision.Accept
End If
End With
End Select
Next iRevision
End With
End Select
Next oRevision
Next oField
End Sub
答え2
最近、私が提起した質問に対する解決策は、リビジョンマークをまったく使用しないことだと気づきました。代わりに、すべての変更を終えた後、ファイルの比較を使用して、ドキュメントのリビジョンマークバージョンを作成します。比較を行うときは、次の点に注意してください。選択しないの田畑比較設定のオプション:
私は普段は気にしないので書式設定そして空白変更する場合は、これらのオプションも選択解除します。最終結果(通常は新しい文書) を使用すると、重要な変更のみが含まれ、重要でない、気を散らす (またはしない) 変更 (フィールド値など) が含まれないドキュメントが作成されます。