
いつもお世話になっております。
さて、マクロの記録で最初にショートカットキーに”Z”を振り当てて黄色くしたのが下記のコードなのですが、Ctrl+Zで実行するとシート全体が削除されてしまいます。
ところが、VBAの編集画面でF8で1行づつ実行するとちゃんと動くのですが、何故かショートカットキーからの実行だと何度やってもシート全体が削除されてしまいます。
やりたいことは、最初に無駄な列を削除して残った列で合計、小計を表示させたいのです。
最初に無駄な列を削除する時に、ショートカットキーで実行すると全部の列が削除されるような感じです。
原因と対策をご教示お願いします。
Sub 処理1()
'
処理1 Macro
'
' Keyboard Shortcut: Ctrl+Shift+Z
'
Range("A:P,S:T,V:V,X:AP").Select
Selection.Delete Shift:=xlToLeft
Selection.End(xlToLeft).Select
ActiveWindow.ScrollColumn = 1
Rows("1:4").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("C3").Select
ActiveCell.FormulaR1C1 = "合計"
ActiveCell.Characters(1, 2).PhoneticCharacters = "ゴウケイ"
Range("C4").Select
ActiveCell.FormulaR1C1 = "1万円以上"
・・・・・・・・・・
End Sub
No.2ベストアンサー
- 回答日時:
>出来たらCtrl+Zで期待通り動くようにしたいのですが。
出来ない事は無いと思いますが・・・OnKeyを使うとか
Ctrl+Zはマクロの実行より使うケースが多くないですか?
Ctrl+Zは元に戻す時によく使うショートカットキーだと思います
強引に割り当てますか?止めておく方が良いと思いますよ。。
お礼が遅くなり申し訳ありません。
このために追加のご回答まですみません。
>Ctrl+Zは元に戻す時によく使うショートカットキーだと思います
知りませんでした。
使ったことが無く、大昔に「ショートカットキ」という機能を知った時に初めて割り当てたのがC+Zだったので・・・
アドバイス通りにやめておきます。
No.3
- 回答日時:
何かの機会に(他のキーで)同様の事をやりたいかもしれませんので
簡単な方法を示しておきます
Ctrl+zは有用なキーなので出来るだけ実行範囲を少なくして考えました
コードを拝見する限り、特定のシートで実行するもの?かと思いますので
実行する シートモジュールに
Private Sub Worksheet_Activate()
Call zKey_onMacro
End Sub
Private Sub Worksheet_Deactivate()
Call zKey_offMacro
End Sub
標準モジュールに
Sub 処理1()
Range("A:P,S:T,V:V,X:AP").Select
Selection.Delete Shift:=xlToLeft
Selection.End(xlToLeft).Select
ActiveWindow.ScrollColumn = 1
Rows("1:4").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("C3").Select
ActiveCell.FormulaR1C1 = "合計"
ActiveCell.Characters(1, 2).PhoneticCharacters = "ゴウケイ"
Range("C4").Select
ActiveCell.FormulaR1C1 = "1万円以上"
・・・・・・・・・・
End Sub
Sub zKey_onMacro()
Application.MacroOptions Macro:="処理1", ShortcutKey:="z"
End Sub
Sub zKey_offMacro()
Application.MacroOptions Macro:="処理1", ShortcutKey:=""
End Sub
対象のシートをアクティブにした場合にCtrl+zで実行できると思います
通常の戻るショートカットキーは使えない
他のシートに移れば戻るショートカットキーは使えます
他のシートでも実行したい場合は
Private Sub Worksheet_Deactivate() を削除してください
Application.OnKey "^z", "処理1" のようなやり方もありますが、
機能を戻す方法を(ブックを再起動以外)知りません
非常に丁寧な追加のご回答で心苦しく。。。
当方の無知ゆえにお手数をお掛けし申し訳ありませんでした。
Ctrl+Sift+Zで対応することに致します。
慣れの問題なので経時で慣れてしまうと思いますので特殊な細工は辞めます。
No.1
- 回答日時:
こんにちは
>Ctrl+Zで実行する
Ctrl+Shift+Zになっていますが・・・ 書き間違えだけ?
これはマクロの記録の設定画面の枠で”Z"を指定すると
Ctrl+Shift+Z
と記録されるのですが、前回は同じ方法Ctrl+Zで問題なく動かせたので気づきませんでした。
改めてCtrl+Shift+Zやってみたら予定通りに動きました。
最初にNETで調べた時にもCtrl+Shift+ZとあったのでSiftを削除して実行したらシート全部が空白になってしまいました。
出来たらCtrl+Zで期待通り動くようにしたいのですが。
これまで左手だけでC+Zで使っていたのと、この3つのキーは同時に押しにくいので。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VLOOKUP FALSEのこと
-
【関数】【マクロ】売上X円以上...
-
【マクロ 画像あり】Exact関数...
-
空白処理を空白に
-
同じ名前(重複)かつ 日本 ア...
-
エクセルでフィルターした値を...
-
エクセルシートの見出しの文字...
-
空白のはずがSUBTOTAL関数でカ...
-
excel
-
if関数の複数条件について
-
【マクロ】数式を入力したい。...
-
Excelで4択問題を作成したい
-
Excel 複数のセルが一致すると...
-
Excel 日付の表示が直せません...
-
表計算ソフトでの様式の呼称
-
【マクロ】既存ファイルの名前...
-
【マクロ】エラー【#DIV/0!】が...
-
【マクロ】実行時エラー '424':...
-
エクセルの文字数列関数と競馬...
-
エクセルに写真が貼れない(フ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA 作業後に選択範囲...
-
別のフォームで記述している関...
-
エクセル マクロ 別シートから...
-
VBAでのユーザフォームの表示有...
-
ascW関数の結果がおかしい
-
Excel VBA 選択範囲の罫線色の...
-
ACCESSで別DBにあるクエリを...
-
Sub Auto_Open() 実行されない
-
円の中に等間隔に線を引くには
-
ExcelVBAで毎月月初の最初にBoo...
-
エクセルのVBAにショートカット...
-
GetAsyncKeyState() を利用する...
-
最小化ボタンで最小化したフォ...
-
エクセルVBAのコードで質問です...
-
メニューバーのイベントが2回...
-
続き…エクセルvba ①SUBメニ...
-
Excel VBAのステップイン
-
Excelで、チェックボックスにチ...
-
MATLABの乱数生成関数 rand( ) ...
-
Visual Basic 6.0のフォームの...
おすすめ情報