エクセルで、巨大な表に、○×△や、OK,NGなどを記入してゆく場合があります。

同じものが続くときは、フィルハンドルを使ったりコピペでよいのですが、頻繁に変わる場合は、コントロールキー + eCtrl + e )などのショートカットキーを押すと、トグルで変わってくれるとありがたいですね。

そんなときはVBAのマクロを書いて、そのマクロにショートカットキーを割り当てます。


空白 → ○ → △ → × → 空白のトグルマクロ

Sub ToggleMark()
  Dim dd As String
  dd = ActiveCell.Value

  Select Case dd
    Case "":    dd = "○"
    Case "○":  dd = "△"
    Case "△":  dd = "×"
    Case "×":  dd = ""
  End Select

  ActiveCell.Value = dd
End Sub


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

  1. 「開発」タブをクリック
  2. リボンの「マクロ」をクリック
  3. 「マクロ」のダイアログが表示
  4. 所望の関数を選択
  5. オプション」をクリック
  6. 「マクロオプション」ダイアログが表示
  7. ショートカットキー」に割り当てたいキー( e など)を入力
  8. 「OK」をクリック

Shiftを組み合わせることも可能(大文字の場合)です。すでに登録してあるショートカットキー( Ctrl+cCtrl+v など)は上書きされてしまうので、割り当てない方がよいです。



VBAコード内にショートカットキーを埋め込む方法( Ctrl + e の場合)

Application.MacroOptions Macro:="ToggleMark", ShortcutKey:="e"


Application.OnKey "^e", "ToggleMark" という方法もありますが、開いているエクセル全部に影響するので、あまりおすすめしません。用途を考慮して使ってください。

2021/06/12