エクセルを使用する上でショートカットキーは、よく使用される機能です。
たとえば「Ctrl」+「C」で「コピー」でコピーができたり、
「Ctrl」+「F」で「検索」であったり、エクセルの機能をキーボードで実行できる
便利なものです。
そんなショートカットキーですが、実はVBAで作成したプロシージャ(プログラム)を
ショートカットキーに割り当てることで自作のショートカットキーを作ることができます。
今回はショートカットキーの割り当て方法について紹介してますので是非参考にしてみてください。
それでは見ていきましょう。
⬛︎こんなことができるようになる!
VBAで作成したプロシージャ(プログラム)をショートカットキーで実行できるようになる!
⬛︎ショートカットキーを実行したい範囲を理解する
まず前提条件としてショートカットキーに割り付けたい
プロシージャ(プログラム)を作成しておく必要があります。
しかしプロシージャがどこで管理されているかによって
ショートカットキーの実行範囲が変わってきます。
まず、ショートカットキーに登録したいプロシージャは下記の
どのパターンに属するか確認してみてください。
①指定したブックのみにショートカットキーを割り付ける
②全てのブックにショートカットキーを割り付る
①の指定したブックのみ割り付けたい場合は対象のブックの
モジュールにプロシージャが存在すれば問題ありません
②の全てブックにショートカットキーを反映させたい場合は
「個人用マクロブック」と呼ばれる項目にプロシージャがなければ
いけません。
詳しく説明するとブックAに「プログラムA」というプロシージャがあったとします。
プログラムAをショートカットキーに割り付けたとすると
プログラムAを開いている間はショートカットキーは機能しますが
ブックAを閉じると登録した、「プログラムA」は機能しなくなるのです。
なので全てのブックで実行可能なショートカットキーを作成する場合は「個人用マクロブック」
に入力する必要があります。
個人用マクロブックについては下記リンクにまとめてますので
是非参考にしてみてください☟
【マクロVBA】全てのファイル・ブックでも実行できるプログラムを組む!個人用マクロブックとは ► 独学エクセル塾 (dokugakuexcel.com)
上記内容を確認した上でショートカットキーを割り付けてみましょう。
⬛︎作成したプロシージャにショートカットキーを割り付ける
では実際に作成したプロシージャ(プログラム)をショートカットキーに割り付けてみましょう。
方法としては2種類あります。
①マクロのオプションを活用する
②プログラムに直接書き込む
ではそれぞれ紹介したいと思います。
・①マクロオプションを活用する
まずはマクロのオプションを活用し、ショートカットキーに割り付け
を行う方法を見ていきましょう。
「開発」タブの「コード」の項目の「マクロ」を押してください。
そこに作成したマクロが並んでいるので登録したいマクロを選択します。
ここで、「マクロの保存先」に注目してください。
項目としては
・個人用マクロブック
・新しいブック
・作業中のブック
・現在開いているブック
が選択できます。
個人用マクロブックに保存したマクロを登録したい場合は
マクロの保存先を「PERSONAL.XLSB」にしてください。
登録したいマクロを選択したら「オプション」をクリックします。
するとマクロ オプションのメニュー画面になります。
その中の「ショートカットキー」が今回の対象です
。
デフォルトでは「Ctrl」にプラスで設定したいキーを入力できるように
なっていますね。
では今回は「Ctrl」+「Shift」+「K」で作成してみたいと思います。
なので「K」を入力してみましょう。
これで完成です。簡単ですね!
ちなみに見本で登録したプログラムは下記の通りです。
シンプルにA1に「123」を入力するプログラムになります。
Sub 見本プログラム()
Cells(1, 1) = 123
End Sub
では「Ctrl」+「Shift」+「K」を押してみましょう。
結果はこちら。
狙い通りA1に「123」が入力されました。
・②プログラムに直接書き込む
先程はマクロのオプションを活用しましたがプログラムに直接書き込む方法もあります。
使用するのは「OnKey」 となります。
構文はこちら
Application.OnKey "登録したいキー","登録したいマクロ"
「登録したいキー」についての「Shift」や「Ctrl」などの
コードは下の表をご参照ください。
キー | コード |
---|---|
BackSpace | {BACKSPACE} または {BS} |
Break | {BREAK} |
CapsLock | {CAPSLOCK} |
Clear | {CLEAR} |
Delete または Del | {DELETE} または {DEL} |
↓ | {DOWN} |
終了 | {END} |
Enter (テンキー) | {ENTER} |
Enter | ~ (ティルダ) |
Esc | { ESCAPE} または {ESC} |
HELP | {HELP} |
ホーム | {HOME} |
Ins | {INSERT} |
← | {LEFT} |
NumLock | {NUMLOCK} |
PageDown | {PGDN} |
PageUp | {PGUP} |
Return | {RETURN} |
→ | {RIGHT} |
ScrollLock | {SCROLLLOCK} |
Tab | {TAB} |
↑ | {UP} |
F1 ~ F15 | {F1} から {F15} |
さらに「Shift」や「Ctrl」、「Alt」とも組み合わせが可能です。
任意キーとほかのキーを組み合わせるときは下記のコードを使用します。
キー | コード |
---|---|
シフト | +(正符号) |
Ctrl キー | ^ (カレット) |
Alt キー | % (パーセント記号) |
コマンド | *(アスタリスク)Mac にのみ適用 |
では実際にプログラムを組んでみましょう。
今回も見本で「個人用マクロブック」に作成してある
「見本プログラム」を登録してみましょう。
今回は例で「Ctrl」+「Shift」+「→(右矢印)」で登録してみましょう。
プログラムはこのようになります。
Sub ショートカットキー設定()
Application.OnKey “+^{RIGHT}“, “見本プログラム“
End Sub
Sub 見本プログラム()
Cells(1, 1) = “123”
End Sub
それでは「Ctrl」+「Shift」+「→」を押してみましょう。
結果はこのようになりました。
狙い通りA1には「123」が入力されました。
とても便利ですね!
⬛︎公式の説明
わかりやすいように説明したため公式と使用する語句が異なりますが
マイクロソフト公式の説明については下記のリンクを参照してください。☟
Application.OnKey メソッド (Excel) | Microsoft Docs
⬛︎まとめ
いかがだったでしょうか。
ショートカットキーに登録すると様々な動作を効率的に実行することができます。
私もアクティブシートのPDF化など
よく使用する機能をショートカットキーに落とし込んで
作業を効率化しています。
PDF化については下記記事をご参照ください。
【マクロVBA】PDF化!選択した単体・複数のシートをPDFで保存・出力・作成する方法 ► 独学エクセル塾 (dokugakuexcel.com)
是非みなさんもオリジナルのショートカットキーを作成して
作業を効率化してみてください。
それでは次回の記事でお会いしましょう。