特定のキー、またはキーの組み合わせを押したときに、指定されたプロシージャを実行します。
構文
式。OnKey (キー、 プロシージャ)
expressionApplication オブジェクトを 表す変数。
パラメーター
| 名前 | 必須 / オプション | データ型 | 説明 |
|---|---|---|---|
| Key | 必須 | 文字列型 (String) | 押すキーを示す文字列を指定します。 |
| Procedure | 省略可能 | バリアント型 (Variant) | 実行するプロシージャ名を示す文字列を指定します。
プロシージャが "" (空のテキスト) の場合、キーを押しても何も起こりません。 この形式の OnKey では、Microsoft Excel での通常のキー操作の結果が変更されます。 プロシージャを省略すると、キーは Microsoft Excel で通常の結果に戻り、以前の OnKey メソッドで行われた特別なキーの割り当てはすべてクリアされます。 |
注釈
Key 引数では、Alt、Ctrl、Shift と組み合わせた任意の 1 つのキー、またはこれらのキーの任意の組み合わせを指定できます。 各キーは、1 つ以上の文字で表します。たとえば、文字キー a は a で表し、Enter キーは {ENTER} で表します。
対応するキー (Enter キー、Tab キーなど) を押したときに表示されない文字を指定するには、次の表に示すコードを使用します。 各コードは、キーボードの 1 つのキーに対応します。
| キー | コード |
|---|---|
| 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 キー、Command キーと組み合わせて指定することもできます。 他のキーと組み合わせてキーを指定するには、次に示すコードを使用します。
| キー | コード |
|---|---|
| シフト |
+ (正符号) |
| Ctrl キー |
^ (カレット) |
| Alt キー |
% (パーセント記号) |
| command |
* (asterisk)Mac にのみ適用されます。は Excel 2011 for Mac でのみ機能し、それ以降のバージョンでは機能しません。 |
プロシージャを特殊文字 (+、^、% など) に登録するときは、文字を中かっこ ({ }) で囲みます。 登録の方法は、使用例を参照してください。
注:
現在、最新バージョンの Office VBA で Command キーを検出する方法はありません。 Microsoft はこれを認識しており、調査中です。
例
この例では、InsertProc をキー シーケンス Ctrl+正符号に割り当て、SpecialPrintProc をキー シーケンス Shift+Ctrl+→ に割り当てます。
Application.OnKey "^{+}", "InsertProc"
Application.OnKey "+^{RIGHT}", "SpecialPrintProc"
この例では、Shift+Ctrl+右方向キーを通常の意味に戻します。
Application.OnKey "+^{RIGHT}"
この例では、Shift+Ctrl+右方向キーのシーケンスを無効にします。
Application.OnKey "+^{RIGHT}", ""
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。