• ベストアンサー

WordのVBAマクロの実行を、一気に取り消す

こんにちは。 Word2007以降で、1つのVBAマクロで行った処理を全て取り消す方法が見つからず、困っています。 例えば、Word文書の内容を、Forループなどで1段落ずつ処理していくマクロの場合、 そのマクロを実行した後、実行前の状態に戻すには、段落の数だけアンドゥをしなけれななりません。 こういったマクロの実行を、一気に取り消す方法は無いのでしょうか? 以上の件について、何か良い方法を知っておられる方がいらっしゃれば、是非教えて頂きたいと思います。 では、よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

Word2010で新規に用意された[ UndoRecord オブジェクト]を 利用して一気に戻すことは可能みたいですね。 http://www.ka-net.org/office/of49.html http://ameblo.jp/gidgeerock/theme-10036761160.html このオブジェクトで、マクロ実行前に戻すことを試したことが ないのと、検証できる環境ではないので、わかりません。 Word2007の場合はこの機能がないので、マクロ実行前に現状を 記録しておいて、その状態に戻すマクロを用意するなどすれば、 戻すことと同じだと思います。バックアップファイルを用意して そのファイルと入れ替えるなどでも同じですね。 (No.1の回答者さんが書いていることと基本的に同じ)

MetalLover
質問者

お礼

御回答ありがとうございます。 Word2010のUndoRecordオブジェクトは便利そうでいいですね。 ただ、自分が使っているのは2007なので、 マクロ実行前にバックアップを取っておくか、 Undoヒストリを使うかのどちらですね。 いずれにせよ、貴重な情報の提供をありがとうございました。

その他の回答 (2)

  • sat000
  • ベストアンサー率40% (324/808)
回答No.2

Word VBAによる文書の操作と人による操作は全く同一です。 ですのでVBAコマンド実行前の状態に戻すというコマンドはありません。 ただ、少なくともWord2010だとUndoボタンにドロップダウン機能が付いているので、ヒストリを追跡して一気に戻すことは可能です。 Ctrl+zでは無理な技です。 もちろんUndoバッファの範囲内のことなので、それ以上戻す場合は文書破棄しかありません。 多分2007でもドロップダウンメニューが出る気がしますが、手元に2007が無いので確認できません。

MetalLover
質問者

お礼

御回答ありがとうございます。 確かにマクロの実行結果は、Undoボタンのヒストリに残っていました。 これである程度は対処できそうです。

  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.1

Wordのマクロはほとんど知らないのですが、 undoで戻れるようになっただけ改善できたと考えるのではだめですか? 私の場合、 マクロは実行したら戻れないものと考えて、戻したくなるかもしれないファイルの場合は 必ず別名で保存しています。 (いきなり本番ファイルに適用するのでなく、必ずいやになるほど試行し確認してから 本番のファイルに適用して、さらに別名で保存します)

MetalLover
質問者

お礼

御回答ありがとうございます。 やはり、マクロ実行前にバックアップしておくべきですね。 了解しました。