一度だけ使うショートカットキーを登録する
Ctrl+Shift+F12に練習マクロを割り当て、呼び出された直後に標準動作へ戻します。
実行前に確認
- OnKeyはExcel全体に効きます。以前の独自割り当てを読み出して復元する機能はないため、既存割り当てがあるキーには使いません。
- 未使用のままブックを閉じる前にCancelShortcut8032を実行してください。空文字を渡すとキーを無効化するため、解除時は第2引数を省略します。
- 公式仕様とコードを照合した例です。Excel実機での実行は未検証です。業務ブックではなくコピーで試してください。
1サンプルコード
Option Explicit
Sub PracticeAdvanced8032()
Dim proc As String
If MsgBox("Ctrl+Shift+F12を練習用に一時登録します。" & vbCrLf & _
"このキーに既存の独自割り当てがないことを確認しましたか?", _
vbYesNo + vbQuestion + vbDefaultButton2) <> vbYes Then Exit Sub
proc = "'" & Replace(ThisWorkbook.Name, "'", "''") & "'!RunShortcut8032"
Application.OnKey "^+{F12}", proc
MsgBox "Excelのシート画面へ戻り、Ctrl+Shift+F12を1回押してください。"
End Sub
Public Sub RunShortcut8032()
Application.OnKey "^+{F12}"
MsgBox "ショートカットで実行しました。割り当ては解除済みです。"
End Sub
Public Sub CancelShortcut8032()
Application.OnKey "^+{F12}"
MsgBox "練習用の割り当てを解除しました。"
End Sub図で見る操作の流れ
イメージ図準備、実行する操作、確認する結果の順で示しています。
準備
他のマクロやアドインが同じキーを使っていない練習用のExcelセッションで試します。3つのSubを全部貼り付けます。
操作
Ctrl+Shift+F12に練習マクロを割り当て、呼び出された直後に標準動作へ戻します。
結果
通知が1回出て、割り当てが解除されます。以後はExcelの標準動作へ戻ります。
OnKeyはExcel全体に効きます。以前の独自割り当てを読み出して復元する機能はないため、既存割り当てがあるキーには使いません。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
- 1
Windows版デスクトップExcelの練習用ブックを.xlsmで保存し、Alt+F11→[挿入]→[標準モジュール]へ、この例だけを貼り付けます。
- 2
他のマクロやアドインが同じキーを使っていない練習用のExcelセッションで試します。3つのSubを全部貼り付けます。
- 3
PracticeAdvanced8032を実行し、シート画面でCtrl+Shift+F12を押します。使わない場合はCancelShortcut8032で解除します。
- 4
通知が1回出て、割り当てが解除されます。以後はExcelの標準動作へ戻ります。