プチIT化 PR

【Excel】マクロ実行後に“元に戻す”ができない?【VBA】

記事内に商品プロモーションを含む場合があります。
当サイトは、アフィリエイト広告を利用しています。

こんにちは!今回の記事は、マクロ実行後に元に戻すボタンが出来ない、どうすれば?という記事になります。とある日、マクロ実行後にマクロ実行前に戻したいと思いました。が、

悩める人
悩める人
元に戻すボタンがグレイアウトして押せない!

戻るボタンの矢印が無効になっていて、元に戻すことができなかったです。これはどうしたらいいのか、考えてみました。それでは、いってみましょう!

マクロ実行後はUndo情報はクリアされる

結論から言うと、マクロ実行後は元に戻す(Undo)操作はできないようです。Excelマクロは、元に戻す機能で記録できない操作を扱っていることがあるそうで、その関係でどうも元に戻すという操作ができないそうです。

悩める人
悩める人
じゃあどうしたらいいの?

ということを次章より記載していこうと思います!

マクロ実行してしまった場合、保存せずに閉じる

マクロ実行後してしまった場合、Excelブックを保存せずに閉じるとマクロ実行前にもどります。

Excelブックの右上の「×」ボタンをクリックし、“保存しますか”と聞かれたら保存しないボタンをクリックして終了します。

ただし、マクロに変更を加えていた場所は改修したマクロ部分も消えてしまうので、マクロ部分を別にうつして(メモ帳などのテキストエディタに一時的に退避)置いて、再度開いたときに戻すと良いかと思います!

マクロ実行前のバックアップを保持しておく

マクロ実行後は元に戻せないので、実行前に同じファイルを別名で保存しておき、バックアップを保持しておくと安心です。

少し面倒ですが、これであればUndo機能で元に戻せなくても、元に戻った状態のファイルを持っていることになります。

少し面倒ですが、マクロ改修するときはよくバックアップを作っておくkとがおおいです。個人的にはこの方法をよく採用しています。

マクロでUndo情報を記録するのは?UndoRecordオブジェクト

マクロで元に戻す情報、Undo情報を記録できるUndoRecordオブジェクトというオブジェクトが用意されているようです。

なんですが…こちらWordでは利用できるものの、Excelでは使用できないようです。このUndoRecordオブジェクトで記録できない操作がExcelマクロでは実行できるからなのかなと思いますが。

さいごに

いかがだったでしょうか。マクロ実行後に元の状態に戻すことができないのかな?と気になったので調べてみました!それでは、また!