| 
    
     |  | こんばんは。 >やりたいと思っている処理は以下の通りです。
 >1.現在セル(C2:E4)を選択しているとする。(選択の中心はC2)
 >2.ショートカットキー(Alt+4)を押すと、2〜4行全体が削除される。
 >3.その後、選択セルがC2に戻る。
 >4.Undo(Ctrl+Zなど)を行えばきちんと前の状態に戻るようにする。
 >
 >※直接マクロで処理を行わず、Application.Sendkeysでコマンドを送っているのは、Undoを可能にするためです。
 
 ふ〜ん、これ本当ですか??
 
 Excel2002で例えば、
 
 Sub test1()
 With Rows(1)
 .Select
 .Value = 1
 End With
 Application.SendKeys "%ed"
 DoEvents
 'MsgBox "確認"
 Application.SendKeys "^z"
 DoEvents
 Range("a1:c1").Select
 End Sub
 
 とすれば、1行目がSendkeysによって削除されますが、Undoは効きませんでした。
 (エラーにはなりませんが)
 これがバージョンによっては成功するのですか?
 
 Excel2002でUndoを成功させるには・・・、
 
 '===============================================
 Sub test()
 With Rows(1)
 .Select
 .Value = 1
 End With
 With Range("a1:c1")
 .Value = 2
 .Select
 End With
 MsgBox "確認1"
 Application.ExecuteExcel4Macro "EDIT.DELETE(3)"
 MsgBox "確認2"
 Application.Undo
 Range("a1:c1").Select
 End Sub
 
 
 上記コードのようにExcel4Macroでの行削除はUndoが有効でした。
 
 バージョンが違うのなら、確認してみて下さい
 
 
 |  |