午後わてんのブログ

ベランダ菜園とWindows用アプリ作成(WPFとC#)

エクセル2007アドイン作成その29、アンドゥリドゥ(元に戻すとやり直し)機能をつけた

アンドゥ・リドゥ(元に戻すとやり直し)をできるようにした

 
イメージ 1
見た目の変化
1回だけ元に戻せる「戻」ボタンを廃止して
アンドゥの「←」ボタンとリドゥの「→」ボタンを配置した
元に戻せる最大回数は10回
 
元に戻せるのは、午後のパレットを使って
  • セルの塗りつぶしの色を変えた
  • セルのフォントカラーを変更した
  • セルに罫線を引いた
これだけ
 
アンドゥ・リドゥの機能は午後のパレットを作る当初から
あったら便利だなあとは思いつつも
どうなふうに書いたらいいか見当がつかなかった
けど、やっとできた(約7ヶ月)!
これで午後のパレットは完成、3回目くらいかな
 
動作は
元に戻せる最回数分のシート(保存用シート)をアドインファイルに作成して
セルに色を塗る直前にセルの書式を保存用シートに貼り付けておいて
元に戻す(アンドゥ)の時に、保存用シートから復元しているだけ
なんだけど難しかった
詳しくは
 
 
エラーになりそうな操作は
午後のパレットで色を変更したセルを結合したり、色を変更したセルのあるシートを削除した後に色を元に戻そうとするとエラーになるはず
存在しないシートに色は戻せないのと同じで、ブックを閉じた後に色を戻すのもエラーになる
他にもあるなあ
 
 
ファイル名:午後のパレット_20150601.xlam
ダウンロード先
 
 
ググる時に、エクセルVBA アドイン アンドゥ リドゥ マクロ 元に戻す
とかを組み合わせて検索してもあまり出てこないのは需要が少ないか
そもそもマクロをマクロでアンドゥ・リドゥするのは良くないのかなあ
 
2019/10/18追記
マクロで行った操作はアンドゥできないのが基本みたいで、本当の意味でアンドゥさせようとするのはかなり難しそう、僕の方法は強引な疑似アンドゥ
追記ここまで
 
 
続きは翌日