トップ回答者
Excelでプログラムからセルの内容を更新したあとでも元に戻す操作が使えるようにしたい

質問
-
Excel2007でVSTOを使用して入力支援用のアドインを作成しているのですが、このアドインからセルの内容を変更するとExcelのUndoリストがクリアされて元に戻せなくなってしまうのですが、これをクリアされなくなるようにすることは可能でしょうか?VSTOのフォーラムが終了していましたのでこちらに投稿いたしました。
以下ThisAddInクラス内の抜粋したコードです。アドイン上でボタンをクリックしたときに現在のアクティブセルにある文章に追記できるように作っています。
Dim rg As Excel.Range = Me.Application.ActiveCell Dim beforetext As String beforetext = rg.Value rg.Value = beforetext & txt
環境については以下の通りです。
開発環境
WindowsVista+Excel2007+VisualStudio2010+VSTO
実行環境
WindowsXP+Excel2007+VSTO※この現象ですがOSはどちらの環境でも同じような動作となりました。
回答
-
残念ながら Excel の場合、VBAやアドイン等からの操作を
元に戻すことはできないはずです。また、操作履歴もクリアされます。戻せるのはユーザー操作のみなので、SendInput API や MSAA、
SendKeys 等を用いて、マウスやキーボード操作をエミュレートしてやれば
一応 Undo の対象とはなりますが…。- 回答としてマーク Y.Yamanouchi 2013年5月27日 13:21
すべての返信
-
残念ながら Excel の場合、VBAやアドイン等からの操作を
元に戻すことはできないはずです。また、操作履歴もクリアされます。戻せるのはユーザー操作のみなので、SendInput API や MSAA、
SendKeys 等を用いて、マウスやキーボード操作をエミュレートしてやれば
一応 Undo の対象とはなりますが…。- 回答としてマーク Y.Yamanouchi 2013年5月27日 13:21