Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


30742 / 76732 ←次へ | 前へ→

【51254】Re:Application.Sendkeysで送ったコマンドが実行されるのを待つ方法
発言  ichinose  - 07/9/5(水) 23:21 -

引用なし
パスワード
   こんばんは。
>やりたいと思っている処理は以下の通りです。
>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が有効でした。

バージョンが違うのなら、確認してみて下さい

0 hits

【51249】Application.Sendkeysで送ったコマンドが実行されるのを待つ方法 やまP 07/9/5(水) 21:15 質問
【51253】Re:Application.Sendkeysで送ったコマンド... neptune 07/9/5(水) 22:23 発言
【51289】Re:Application.Sendkeysで送ったコマンド... やまP 07/9/10(月) 15:10 お礼
【51254】Re:Application.Sendkeysで送ったコマンド... ichinose 07/9/5(水) 23:21 発言
【51256】Re:Application.Sendkeysで送ったコマンド... neptune 07/9/6(木) 9:56 発言
【51291】Re:Application.Sendkeysで送ったコマンド... やまP 07/9/10(月) 15:44 お礼
【51257】マクロじゃないけど。 Jaka 07/9/6(木) 11:23 発言
【51258】Re:マクロじゃないけど。 Jaka 07/9/6(木) 11:51 発言
【51293】Re:マクロじゃないけど。 やまP 07/9/10(月) 15:55 お礼
【51294】解決致しました! やまP 07/9/10(月) 16:09 お礼

30742 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free