5

Word 2003には、ドキュメントのフォントを「エコフォント」(長い話)に変更し、[印刷]ダイアログを表示する非常に単純なVBAがあります。

ユーザーが[キャンセル]または[OK]を押すと、コードは「元に戻す」を実行して変更を元に戻します。

問題は、「OK」を押してドキュメントを印刷するときに、2つのアクション(「フォントの変更」と「フィールドの更新」)を元に戻す必要がある場合があることです。これがいつ起こるかは予測できないようです。

WordのUNDOバッファの最後の項目を読み取る方法はありますか?そうすれば、フォントの変更が完了するまで、元に戻すを押し続けることができます。

編集: 最終コード(削減):

ActiveDocument.Range.Bookmarks.Add ("_tempEcoUndoStart_") 
ActiveDocument.Content.Font.Name = "Nanonymus Eco Sans" 
Dialogs(wdDialogFilePrint).Show 
While ActiveDocument.Bookmarks.Exists("_tempEcoUndoStart_") 
    ActiveDocument.Undo 
Wend
4

2 に答える 2

4

トリックを使用して、Word で「トランザクション」のような元に戻すことができます。マクロの開始時に、ドキュメント全体に特別なブックマークを配置します。マクロの使用が終了したら、このブックマークを再度削除する必要があります。これで、元に戻すコマンドを呼び出すときに、ドキュメントに特別なブックマークがある間に元に戻すを繰り返すことができます。

次の関連する質問に詳細があります。

Word または Excel で元に戻すトランザクションを作成できますか? (VSTO)

于 2009-05-20T10:28:30.627 に答える
0

私はテストしていませんが、おそらくあなたはあなたの行動の前にUndoClearを使うことができ、そして後に元に戻すことを頼りにすることができますか?

ActiveDocument.UndoClear
ActiveDocument.Undo 2
于 2009-05-19T11:29:36.643 に答える