Excel起動時にVBAマクロへショートカットを自動設定する
VBAマクロへショートカットを割り当てる方法について書きます。
タイトル以外にも、いくつかの方法について、ご紹介します。
[目次]
1.マクロの記録時にショートカットを割り当てる
2.Excelのマクロメニューからショートカットを割り当てる
3.VBAのOnKeyメソッドでショートカットを割り当てる
4.Excel起動時にマクロへ自動でショートカットを割り当てる(OnKey)
1.マクロの記録時にショートカットを割り当てる
「マクロの記録」から、マクロを作成する場合は、そのままショートカットを設定できます。
一番簡単な方法だと思います。
[方法]
以下から様にマクロの記録メニューから、ショートカットを登録できます。
Excel「開発」タブ>「マクロの記録」メニュー>ショートカットキー
「開発」タブの表示方法(参考)
[開発] タブを表示する - Excel
>1.[ファイル] タブをクリックします。 >2.[オプション] をクリックします。 >3.[リボンのユーザー設定] をクリックします。 >4.[リボンのユーザー設定] および [メイン タブ] で、[ 開発] チェック ボックスをオンにします。 |
2.Excelのマクロメニューからショートカットを割り当てる
2つ目は、Excelのマクロメニューからショートカットを割り当てる方法です。
[方法]
以下から作成済みマクロへショートカットを登録できます。
Excel「開発」タブ>「マクロ」メニュー>オプション(または、Alt+F8)
3.VBAのOnKeyメソッドでショートカットを割り当てる
3つ目は、VBAのOnKeyメソッドで、ショートカットを割り当てる方法です。
[サンプルソース]
Application.OnKey "^j", "test1" |
サンプルでは、Ctrl+jキーに、「test1」というプロシージャのショートカットを割り当てています。
その他のキーの指定方法については、以下サイトを参考にしてください。
Application.OnKey メソッド (Excel)
注意として、コードを実行するまでは、ショートカットは登録されません。
何らかのタイミングでコードを実行する必要があります。
Excel起動時に、上記のコードを実行する方法は、次項で説明します。
4.Excel起動時にマクロへ自動でショートカットを割り当てる(OnKey)
VBAのOnKeyメソッドをExcel起動時に呼び出し、マクロへショートカットを登録する方法です。
Excel起動時にマクロを自動実行する方法については、前回説明しました。
ブックを開いた時やExcel起動時にマクロを自動実行する - Sumihirablog.
以下の通り、OnKeyメソッドを記述すれば、実現できます。
[コードの記述箇所]
(1) PERSONAL.XLSB>Microsoft Excel Objects>ThisWorkBook
(2) PERSONAL.XLSB>標準モジュール>任意のモジュール
[サンプルソース(1)]※ThisWorkBookに記述
'PERSONAL.XLSB ThisWorkBook 'WithEventsにてApplicationオブジェクト(Excel全体を示すオブジェクト)に発生するイベントを拾える様にする 'PERSONAL.XLSBに記述することで、全てのExcelファイルに適用される。 Public WithEvents xlAPP As Application 'Excelブックが開いた時に自動実行する。 Private Sub Workbook_Open() 'アプリケーションオブジェクトを取得 Set xlAPP = Application '標準モジュールの呼出し '直接呼び出すとエラーになるため、実行時間をずらして呼び出す。 Application.OnTime Now + TimeSerial(0, 0, 1), "appFirst" End Sub |
[サンプルソース(2)]※標準モジュールに記述
'PERSONAL.XLSB 標準モジュール firstModule 'Excel起動時に自動実行するマクロを記述する。 'マクロの実行メニューにPublicプロシージャが表示されないようにする。 Option Private Module 'Excel起動時に自動実行するプロシージャ Public Sub appFirst() 'ファイル読込みに時間がかかるとエラーになるためスキップする |
上記の方法で、Excel起動時にショートカットを登録させることができます。
コードの説明については、前回の記事をご参照ください。
以上です。