• 締切済み

excelのマクロで元に戻す方法

excel2003で以下の様に記述しました。 Sub clear() Range("A1", "B3").Value = "" End Sub 上記でフォームボタンをクリックして、指定したセルの内容を空白にすることはできたのですが、 ctrl+zで元の内容を戻そうとしたところ、できませんでした。 なにか方法があれば、ご教示お願いします。

みんなの回答

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

Undo のヘルプには ------------------------------------------------------------ 備考 Undo メソッドは、マクロを実行する前にユーザーが実行した最後の操作を元に戻す場合にだけ使用できます。 このメソッドは、マクロの先頭に記述する必要があります。 Visual Basic で実行したコマンドは元に戻すことができません。 ------------------------------------------------------------ 『Visual Basic で実行したコマンドは元に戻すことができません。』 ユーザーが手作業?で行ったものに関してはアプリケーションで順次履歴を記憶して行きますが VBAで行ったものは範疇にありません。 なので、Ctrl+Zでも戻せません。 Copyメソッドか何かでどこかに退避させて、Ctrl+Z の代わりに Ctrl+V とか? コピー先のセル範囲を指定します。この引数を省略すると、クリップボードにコピーします。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

残念ながら http://nyama.jpn.org/otto/xlstip.shtml に マクロのやり直し(2001/11/24) マクロを実行は基本的にやり直すことが出来ません。あとで、選んだセルが間違っていることに気づいてもどうにもならないのです。「基本的な命令ばっかり使っているのになぜ??」と思います。 とあります。参考にしてください。

  • 11zep
  • ベストアンサー率36% (48/133)
回答No.1

使ったことはありませんが Application.OnUndo で実現できそうです。 ヘルプなどを見てがんばってみてください。

関連するQ&A