2021年9月6日月曜日

マクロ記録を開始する時に、マクロにショートカットキーを設定できますが、やっぱりコードは自分で書くべきだな ー OnKeyメソッド(Excel VBA)

    
エクセルのシート上に、作業実行のボタンを、セットする場合がよくあります。
このボタンは、いったんデータを作ってしまったシート上に置くと目障りです。

なので、代行でショートカットキーを設定する方法があるのは、ご存じの通り。
VBAの構文は簡単でネットでも紹介されており、お使いの方もいるでしょうな。

設定には、MacroOptionsとOnKeyの二つのメソッドがありますが似ています。
違いがあるとすれば、前者は[Ctrl]+[Shift]+[*]との組み合わせです。

後者は、指定キーとして、[Alt]キーやファンクションキーなどにも設定可能。
ただ、単体キー押し込みで実行したいときは、ファンクションキー指定が便利。

なので、あまり使わない、F2やF7キーを指定するには、OnKeyでの設定だ。
コードは、サンプルとして次の通りですが、1行で済んでしまう簡単さなんだ。

 Private Sub Workbook_Open() ’ThisWrokBookに記述
   Application.OnKey "{F3}", "aaa"
 End Sub

ブックを開いたときに、F3キーを押せば、aaa名のプロシージャが起動する。
そして、このプロシージャ最終行に、次の行を書き足すとキーが解除されます。

 Sub aaa()
  'ここに実行コードを書く
  MsgBox "F3のショートカットキーを終了" ’ここはメッセージボックス
  Application.OnKey "{F3}", ""

 End Sub

要するに、この設定キーにマクロ登録がないという指定だから、””の記術です。
まあ、この記述を意識しなくて、今までブックを閉じるまでキーは生きていた。

だから、いくつもショートカットキーを設けていたのですが、この記述は便利。
だって、一つのキーで、登録したプロシージャを変更して実行し続けられます。

というわけで、こんなことも気づかないでいたかと、少し恥ずかしい思いです。
これも、ネットで紹介しているブログの記述がいい加減だったりしたせいですが
、ちゃんと読み込んで熟知しなかった自分が悪いのであり、これからもVBAの研鑽に励んでいこうと思った自分なのでした。



いいねと思ったら、三つポチっとね!
にほんブログ村 スキースノボーブログへにほんブログ村 スキースノボーブログ スキーへにほんブログ村 旅行ブログ 旅日記・旅の思い出へ
にほんブログ村    にほんブログ村      にほんブログ村 



0 件のコメント:

コメントを投稿