アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。

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

以上の件について、何か良い方法を知っておられる方がいらっしゃれば、是非教えて頂きたいと思います。
では、よろしくお願い致します。

A 回答 (3件)

Word2010で新規に用意された[ UndoRecord オブジェクト]を


利用して一気に戻すことは可能みたいですね。
http://www.ka-net.org/office/of49.html
http://ameblo.jp/gidgeerock/theme-10036761160.html
このオブジェクトで、マクロ実行前に戻すことを試したことが
ないのと、検証できる環境ではないので、わかりません。

Word2007の場合はこの機能がないので、マクロ実行前に現状を
記録しておいて、その状態に戻すマクロを用意するなどすれば、
戻すことと同じだと思います。バックアップファイルを用意して
そのファイルと入れ替えるなどでも同じですね。
(No.1の回答者さんが書いていることと基本的に同じ)
    • good
    • 0
この回答へのお礼

御回答ありがとうございます。

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

お礼日時:2012/08/17 18:04

Word VBAによる文書の操作と人による操作は全く同一です。


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

御回答ありがとうございます。

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

お礼日時:2012/08/17 17:50

Wordのマクロはほとんど知らないのですが、


undoで戻れるようになっただけ改善できたと考えるのではだめですか?

私の場合、
マクロは実行したら戻れないものと考えて、戻したくなるかもしれないファイルの場合は
必ず別名で保存しています。
(いきなり本番ファイルに適用するのでなく、必ずいやになるほど試行し確認してから
本番のファイルに適用して、さらに別名で保存します)
    • good
    • 0
この回答へのお礼

御回答ありがとうございます。

やはり、マクロ実行前にバックアップしておくべきですね。
了解しました。

お礼日時:2012/08/17 17:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!