【VBA小技】Ctrl+キーに独自ショートカットを割り当てる方法と注意点|作業効率アップ!

✅ はじめに

Excel VBAで作業を効率化する中で、
「Ctrl + 任意のキーでマクロを呼び出したい!」と思ったことはありませんか?
実は、VBAには標準でショートカットキーをマクロに割り当てる方法が用意されています。
この記事では、
・Ctrl+◯でマクロを実行する方法
・割り当て時の注意点
・実際の使用例
を解説します。

■ 方法:Application.OnKeyでショートカットキーを設定

○ 基本構文

Application.OnKey "^{c}", "MyMacro"

これは、Ctrl + C に MyMacro というマクロを割り当てる例です。
⚠ 実際には、Ctrl+Cは「コピー」の既定動作に上書きされるため、他のキー(例:Ctrl+Shift+Cなど)がおすすめです。

○ 具体例:Ctrl+Shift+Cでマクロ実行

Sub SetShortcutKey() 
    Application.OnKey "^+c", "MyMacro" ' Ctrl + Shift + C に割り当て
End Sub 

Sub MyMacro() 
    MsgBox "Ctrl+Shift+C が押されました!" 
End Sub

■ 解除方法(戻す方法)

Application.OnKey "^+c"

引数を1つだけにすれば、割り当てたショートカットを解除できます。
それか全コードをコメントアウトすると機能が失われて解除できます。

■ 起動時に自動設定するには?

ThisWorkbook の Workbook_Open イベントに書けば、Excelファイルを開いたときに自動で割り当てられます。

Private Sub Workbook_Open() 
    Application.OnKey "^+c", "MyMacro"
End Sub

■ 注意点まとめ

項目 内容
既定ショートカットの上書きに注意 Ctrl+CやCtrl+Vは極力避けましょう
アプリ終了で無効化される Excelを閉じるとOnKey設定はリセットされます
Ctrl+Shift、Ctrl+Altも指定可能 ^, +, % で表現できます
Shift単体キーは非対応 + を単体で使っても反応しません(Alt, Ctrlとの組合せが基本)

■ 補足:記号対応表(OnKeyで使えるキー)

入力記号・表記 キー内容・意味
^ Ctrl(コントロールキー)
+ Shift(シフトキー)
% Alt(オルトキー)
{F1} ~ {F12} ファンクションキー(F1〜F12)
{ENTER} Enterキー
{TAB} Tabキー
{ESCAPE} Escキー
{BACKSPACE} バックスペースキー
{DELETE} Deleteキー
{INSERT} Insertキー
{HOME} Homeキー
{END} Endキー
{PGUP} Page Upキー
{PGDN} Page Downキー
{UP} ↑(矢印上キー)
{DOWN} ↓(矢印下キー)
{LEFT} ←(矢印左キー)
{RIGHT} →(矢印右キー)
{SPACE} スペースキー
{BREAK} Break(一部環境ではPause)
{CAPSLOCK} Caps Lockキー
{NUMLOCK} Num Lockキー
{SCROLLLOCK} Scroll Lockキー

■ まとめ

VBAでショートカットキーを割り当てると…
・よく使う処理をワンタッチで実行できる
・リボンやボタンを使わず操作できてスマート
・定常業務の操作ミスや手間を削減できる

■ 実務でよくある活用例:

  • Ctrl+Shift+P:印刷プレビューを表示
  • Ctrl+Shift+L:ログファイルに出力
  • Ctrl+Shift+V:値貼り付け実行

小さな自動化こそ、日々のストレスを減らす最大の武器です。

■ 関連記事

【VBA小技】F3キーに独自機能を割り当てるには?Excelでファンクションキーをカスタマイズ
【VBA】「コンパイルエラー 修正候補: =」の原因と対処法|Callを使うべきタイミングとは?

■ 関連キーワード

  • VBA ショートカットキー 登録方法
  • Application.OnKey 使い方
  • Ctrl+キー マクロ 実行
  • Excel VBA OnKey イベント
  • マクロ 自作ショートカット
  • VBA ショートカット 割り当て 記号