[三流君] −−> [VBAで楽しく] −−> [バックナンバー一覧]
−−> No.132 Excel ショートカットキーにマクロを割り当てる

Excel ショートカットキーにマクロを割り当てる

メルマガ発行内容

<Excel ショートカットキーにマクロを割り当てる>

どうも、三流プログラマーのKen3です。 最近、質問もらうけど、 なかなか、解答できてない三流プログラマーのKen3です。 ※私のレベルで手に余る高度な質問が多くて。 http://www.ken3.org/p/h/office-028.lzh に今回のサンプル保存されてます。 CTRL+CでAAAのマクロが起動します。 普通に動かして、少し驚いてね(テストしてみてね。) ※通常Ctrl+Cはコピーだけど、横取りして使ってます。

/* * 1. 今回のキッカケ */

読者から、シートにボタンを設置する、 ダブルクリックや右ボタンで、マクロの起動方法はわかったが、 CTRL+Cでコピーのように、キーにマクロを割り当てられないか? と質問をもらいました。 マクロの起動をCTRL+キーで行う方法を探ってみます。

/* * 2.やりたいことをまとめる、実現可能か探ってみる */

キーのクリックやチェンジを探ろうと考えて、
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    MsgBox "aa"
End Sub
とするが、これでは処理は横取りできなかった。 何かのタイミングで処理しようと試みるが、 ダメなことに気が付く。 何かないかなぁと探ってみると、 .OnKeyメソッドが見つかる。 ^^^^^^^^^^^^^^ Application.OnKeyを使用すると、ショートカットキーにマクロを割り当てられます。 ヘルプのサンプルを見ると、 使用例 ^^^^^^ 次の使用例は、InsertProc を Ctrl + a キーに、 SpecialPrintProc を Shift + Ctrl + → キーに登録します。 Application.OnKey "^{a}", "InsertProc" Application.OnKey "+^{RIGHT}", "SpecialPrintProc" 次の使用例は、Shift + Ctrl + → キーを通常の機能に戻します。 Application.OnKey "+^{RIGHT}" 次の使用例は、Shift + Ctrl + → キーを無効にします。 Application.OnKey "+^{RIGHT}", "" 設定方法、戻す方法、無効にする方法の例が出てます。

/* * 3.単体でテストを行う(プロパティ)を探る */

ヘルプで、使えそうな関数を見つけたら、 短いプログラムを作って、テストしてみるのが一番確認しやすい方法だと思います。 ※タイミングや関数の起動を見たいときは、  MsgBox "XXX"なんて手抜きで入れるのも1つの手です。 引数を変えたり、自分で実行したりして、動きを確認して、 自分のやりたいことに応用します。 ※いきなり自分のシステムに組み込まないで、  シンプルな機能・関数として、テストしてみます。 ブックのオープン時に、 Application.OnKey で、Ctrl+Cキーに関数aaaを割り当ててみます。
Private Sub Workbook_Open()
    'プロシージャーの登録
    Application.OnKey "^{c}", "aaa"
    'CTRL+Cをつぶすと(横取りすると問題あるが・・)
End Sub
.OnKeyのヘルプを見ると、設定可能なキーの組み合わせが書いてあります。 半信半疑で、CTRL+Cを設定する場合は、 "^{c}" と、^がコントロールキーです。 , "aaa"これが、起動されるマクロのプログラムです。 テスト関数aaaは、下記のように現在選択位置Selectionを塗りつぶす関数です。
Sub aaa()

    '選択位置を黄色で塗りつぶす
    With Selection.Interior
        .ColorIndex = 6
        .Pattern = xlSolid
    End With

End Sub
実際に使う時も、ブックのオープンのタイミングで走る、 Workbook_Open() のイベントで、 'プロシージャーの登録 Application.OnKey "^{c}", "aaa" 'CTRL+Cをつぶすと(横取りすると問題あるが・・) みたいに、セットすると、便利だと思います。

/* * 4.終わりの挨拶 */

今回は、 キーにマクロを割り当てる方法を探ってみました。 便利関数を作った人は、 空いているキーに割り当てて(Ctrl+CやV以外の人気の無いキー) 使ってみてください。 ※例題のように、CTRL+Cを横取りすると、操作者からクレーム来ると思います。 http://www.ken3.org/p/h/office-028.lzh に今回のサンプル保存されてます。 CTRL+CでAAAのマクロが起動します。 普通に動かして、少し驚いてね(テストしてみてね。) ※通常Ctrl+Cはコピーだけど、横取りして使ってます。 何かの参考となれば幸いです。 Excel/Access大好き、三流プログラマーKen3でした。


ページフッター

ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、

種類別のリンク や 広告など

気になったジャンル↓を選択してください。

人気記事(来場者が多いTOP3):
[VBAでIE,WebBrowserを操作]・・・VBAでIE,WebBrowserを操作する サンプルです
[Access から Excel 連携 CreateObject("Excel.Application")]・・・AccessからExcelを操作したりデータの書き出しなどです
[VBAでOutlookの操作 CreateObject("Outlook.Application" )]・・・VBAからOutlookを使い、メール関係を処理するサンプルです
↑上記3つみたいなCreateObjectで他のアプリケーションを操作するサンプルが人気です。

Excel関係:
[Excel UserFormを操作する]・・・エクセルでユーザーフォームを作成して入力などを行ってます
[ExcelからAccessを操作する]・・・ExcelからAccessのマクロを起動してみました、
[Excel関係 関数、その他]・・・その他Excel関係です

Access関係:
[Access UserForm/サブフォーム 操作]・・・アクセスでフォームを使ったサンプルです
[Access レポート操作]・・・レポートを操作してみました
[Access クエリーやその他関数]・・・あまりまとまってませんが、スポット的な単体関数の解説です

その他:VBAの共通関数やテキストファイルの操作など
[VBAでテキストファイル(TextFile)の操作]・・・普通のテキストファイルを使ったサンプルです
[VBA 標準関数関係とその他解説]・・・その他、グダグタ解説してます

開発時の操作: [F1を押してHELPを見る]/ [Debug.Print と イミディエイトウインドウ]/ [実行時エラーでデバッグ]/ [ウォッチ式とSTOP]/ [参照設定を行う]

仕様書(設計書?) XXXX書類: [基本設計書や要求仕様書]/ [テスト仕様書 テストデータ]/ [バグ票]/ [関数仕様書]/ [流れは 入力・処理・出力]

※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。
※※読んで、気分を悪くされたらスミマセン。

Blogとリンク:[三流君の作業日記]/ [VBAやASPのサンプルコード]/ 広告-[通販人気商品の足跡]



[三流君(TOP ken3.org へ戻る)] / [VBA系TOPへ] / [VBA系バックナンバー目次へ移動]