VBA でやり直しをやりたい。 | |
---|---|
[194787] VBA でやり直しをやりたい。- ■親トピック/記事引用/メール受信=ON■ □投稿者/ LGK -(2022/03/21(09:50)) □U R L/ Application.Undo で元に戻すボタンを押した状態にできますが、 それの逆、やり直しボタンを押した状態にしたいのです。 元に戻すボタンは必ず押してある前提で構いません。 押してない場合の動作保証は無くてもいいです。 |
[194788] Re[1]: VBA でやり直しをやりたい。- ■記事引用/メール受信=OFF■ □投稿者/ OK -(2022/03/21(16:48)) □U R L/ もう一回UndoでReDoと同じ動きになります。 取り消しの取り消し。 |
[194789] Re[2]: VBA でやり直しをやりたい。- ■ / 記事引用/メール受信=OFF■ □投稿者/ LGK -(2022/03/22(06:39)) □U R L/ こんな簡単にできるとは… しかし、逆に言えばUndo2回はできないのですね。 ありがとうございます。 |
[194791] Re[3]: VBA でやり直しをやりたい。- ■記事引用/メール受信=OFF■ □投稿者/ OK -(2022/03/22(17:25)) □U R L/ ↓だったら一応前の前とか戻れます。 ただし、マクロで何かの作業を行ったら それ以前の状態には戻れません。 Sub test() SendKeys "^z", True End Sub ユーザーフォームに登録したコントロールに記述したら 作動しませんでした。 シェイプにマクロを登録したら作動しました。 試してませんが、ショートカットキー(OnAction)でも いけるかもしれません。 この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[194792] Re[4]: VBA でやり直しをやりたい。- ■記事引用/メール受信=OFF■ □投稿者/ OK -(2022/03/22(17:40)) □U R L/ ブック起動時にショートカットキーえお設定します。 Ctrl+U でひとつ前に戻ります。 ※OnActionではなくOnKeyメソッドでした。 'ThisWorkBookモジュール Private Sub Workbook_Activate() Application.OnKey "^u", "modori" End Sub Private Sub Workbook_Deactivate() Application.OnKey "^u" End Sub Private Sub Workbook_Open() Application.OnKey "^u", "modori" End Sub '標準モジュール Sub modori() SendKeys "^z", True End Sub この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[194793] Re[5]: VBA でやり直しをやりたい。- ■記事引用/メール受信=OFF■ □投稿者/ OK -(2022/03/22(17:42)) □U R L/ よく考えたら(よく考えなくても)UnDoではなくReDo の方をやりたいのでしたね。 |
[194794] Re[6]: VBA でやり直しをやりたい。- ■記事引用/メール受信=OFF■ □投稿者/ OK -(2022/03/22(17:48)) □U R L/ やり直しは SendKeys "^y", True でいけました。 一番最後までやり直ししたらブックを保存するか聞いてきました。 理由は調べてません。 |
[194795] Re[7]: VBA でやり直しをやりたい。- ■記事引用/メール受信=OFF■ □投稿者/ OK -(2022/03/22(18:47)) □U R L/ >一番最後までやり直ししたらブックを保存するか聞いてきました。 必ずそうなるわけではなさそうです。 |
[194797] Re[8]: VBA でやり直しをやりたい。- ■記事引用/メール受信=OFF■ □投稿者/ OK -(2022/03/23(13:10)) □U R L/ 一つ書き忘れです。 SendKeysで送り込んだキーで分かるように、 Ctrl+Z で戻る Ctrl+Y でやり直し となります。 これはVBAを使うまでもないかもしれません。 |
[194800] Re[9]: VBA でやり直しをやりたい。- ■ / 記事引用/メール受信=OFF■ □投稿者/ LGK -(2022/03/26(06:53)) □U R L/ 実は、Undo2回は、単なる好奇心からの確認でした。 利用目的は、変更ログを取り、変更前と変更後を保存したかったのです。 だから、今の所Undo2回も、Redo2回も必要ありません。 結局、Undo2回だと時々エラーになるので、 Worksheet_SelectionChange でTagetを変数に入れる Worksheet_Change で変数とTargetをLog シートに入れる というやり方にしました。 だから、Ando、Redo共必要なくなったのですが、又必要な機会があるかもしれません。 わざわざありがとうございます。 |
このトピックに書きこむ |
---|