← コード一覧へ戻る
実務Excel・Windows連携

一度だけ使うショートカットキーを登録する

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

図で見る操作の流れ

イメージ図

準備、実行する操作、確認する結果の順で示しています。

  1. 準備

    他のマクロやアドインが同じキーを使っていない練習用のExcelセッションで試します。3つのSubを全部貼り付けます。

  2. 操作

    Ctrl+Shift+F12に練習マクロを割り当て、呼び出された直後に標準動作へ戻します。

  3. 結果

    通知が1回出て、割り当てが解除されます。以後はExcelの標準動作へ戻ります。

OnKeyはExcel全体に効きます。以前の独自割り当てを読み出して復元する機能はないため、既存割り当てがあるキーには使いません。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
  1. 1

    Windows版デスクトップExcelの練習用ブックを.xlsmで保存し、Alt+F11→[挿入]→[標準モジュール]へ、この例だけを貼り付けます。

  2. 2

    他のマクロやアドインが同じキーを使っていない練習用のExcelセッションで試します。3つのSubを全部貼り付けます。

  3. 3

    PracticeAdvanced8032を実行し、シート画面でCtrl+Shift+F12を押します。使わない場合はCancelShortcut8032で解除します。

  4. 4

    通知が1回出て、割り当てが解除されます。以後はExcelの標準動作へ戻ります。

使っている機能の公式ドキュメント(Microsoft Learn)