![](https://nykk.jp/press/wp-content/uploads/2022/05/640x384_wordvba.png)
プログラムやマクロの処理に間違いはつきもの!
初心者はもちろん、ベテランになっても一切間違いのない処理を常に一発で書くなんて、ほとんど不可能です。もしもドキュメントにたくさんの変更を加えるマクロを誤動作させてしまったら、マクロ実行前の状態に戻してやり直すしかありません。
ところがVBAマクロの実行結果としてOfficeのドキュメントに変更を加えても[元に戻す]が効きません! えー!?
しかしWordではマクロの中で"簡単な準備"をしておけば、[元に戻す]を有効にできるのです。
下記のマクロ(WordTest_Undo)をコピペして、実行してみてください。すると、ドキュメントの内容はすべて消え去り「だいなし!」とだけ書かれた状態になります。ほんとに台無しです。
しかし[元に戻す](Ctrl+Z)を実行すれば、マクロ実行前の状態に戻してやり直せます。
Sub WordTest_Undo()
'Undoテスト'Undo設定(開始)
Dim vUndoRecord As Word.UndoRecord
Set vUndoRecord = Application.UndoRecord
Call vUndoRecord.StartCustomRecord("MyUndoRecord")'★メイン処理★
ThisDocument.Range.Text = "だいなし!"'Undo設定(終了)
Call vUndoRecord.EndCustomRecordEnd Sub
元からあるマクロの最初の部分に「Unod設定(開始)」部分を、マクロの最後に「Undo設定(終了)」部分を付け足すか、あるいは上記コードを丸ごとコピペして、マクロ名やメイン処理部分を書き換えるのでもOKです。
失敗を恐れずこまめに実行してみて、間違いがないか確認することはプログラミング上達の近道。ぜひコピペして使ってみてください。