|
こんばんは。
>やりたいと思っている処理は以下の通りです。
>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が有効でした。
バージョンが違うのなら、確認してみて下さい
|
|