【AutoHotkey】ExcelとOnenoteの日付挿入ショートカットキーを統一する方法
この記事では、ExcelとOnenoteの日付、時間、日付挿入ショートカットキーを統一する方法について書きます。
AutoHotkey と呼ばれるキーに別の機能を割り当てれるソフトを使うことで、ExcelとOnenoteの日付挿入ショートカットキーを統一できます。
そもそも日付挿入のショートカットキーは、ExcelがCtrl+;、OnenoteがAlt+Shift+Dと異なっています。
これはとても不便です。AutoHotkey(以下AHK)を使うことで、どちらも日付挿入を「Ctrl+1」に統一する…みたいなことができます。
僕は、どっちがどっちのショートカットキーだったかよく忘れるので統一できるのはとても便利です。
Excelの日付挿入ショートカットキーは初期で以下になっています。
ショートカットキー | 挿入される物 |
---|---|
Ctrl+; | 日付 (2021/10/23) |
Ctrl+: | 時間 (16:15) |
Ctrl+;→Ctrl+: | 日付と時間 (2021/10/23 16:15) |
Onenoteの日付挿入ショートカットキーは以下になっています。
ショートカットキー | 挿入される物 |
---|---|
Alt+Shift+D | 日付 (2021/10/23) |
Alt+Shift+T | 時間 (16:15) |
Alt+Shift+F | 日付と時間 (2021/10/23 16:15) |
この2つのソフトの日付挿入キーを以下に統一したいと思います。
統一後の挿入キー | |
---|---|
キー | 挿入されるもの |
Ctrl+1 | 日付 |
Ctrl+2 | 時間 |
Ctrl+3 | 日付と時間 |
変更後のキーは自分の好きなように設定できます。
前提
この記事は、AutoHotkeyを既にインストールしていることが前提になります。
AutoHotkeyは、以下サイトからダウンロードできます。
より詳しくは、以下の記事を参考にしてみてください。
参考:【AutoHotkey】キーに別の機能を割り当てるソフトの使い方
僕のサイトが見にくい場合は、以下のサイトが参考になります。コメント欄にて僕も何度かコメントさせていただきました。とても見やすくて分かりやすいです。
参考:【AutoHotkey】インストールと基本的なコードの書き方 | オカメJP|あるドイツ在住日本語教師のブログ
コード
以下のコードをスクリプトに書き込んでリロードします。
;---------------------
;OneNote
;---------------------
#IfWinActive,ahk_exe ONENOTE.EXE
^1:: ;Ctrl+1で日付挿入
Send, +!d
Return
^2:: ;Ctrl+2で時間挿入
Send, +!t
Return
^3:: ;Ctrl+3で日付と時間挿入
Send,+!f
Return
#IfWinActive
;---------------------
;OneNote終了
;---------------------
;---------------------
;Excel
;---------------------
#IfWinActive,ahk_exe EXCEL.EXE
^1:: ;Ctrl+1で日付挿入(Ctrl+)
Send,^;
Return
^2:: ;Ctrl+2で時間挿入(Ctrl+:)
Send,^:
Return
^3:: ;Ctrl+3で日付と時間挿入
Send, ^;{sc039}
Sleep, 100
Send, ^:
Return
#IfWinActive
;---------------------
;Excel終了
;---------------------
「;–〇〇〇—」の部分は、コマンドとは関係ない説明文です。自分で分かりやすい名前に変更してOKです。
1.アプリ指定
それぞれのアプリ(Excel、Onenote)を起動している時だけコード実行する「#IfWinActive ahk_exe 〇〇〇.exe」コマンドを使っています。これにより他のアプリでは発動しないようにしています。
2.日付挿入の仕組み
全部解説してもあれなので、「【Onenote】Ctrl+1に日付挿入(Shift+Alt+D)割り当て」の1つに絞って解説します。他も同じ仕組みです。
コードは「^1::Send, +!d」となっています。これを分かりやすく変換すると以下の表になります。
コード | 解説 |
---|---|
^1 | Ctrl+1を押したときに発動 |
:: | (AHK上の変換コード) 以下のキーに割り当てる |
Send, | 以下のキーを割り当て |
+!d | Shift+Alt+Dを押したことにする |
つまり、Ctrl+1を押したらShift+Alt+D(Onenoteの日付挿入キー)を押したことにするという意味です。
3.Excelの日付、時間挿入について
実はExcelには日付と時間を同時入力するショートカットキーが存在しません。そこで日付挿入(Ctrl+;)と時間挿入(Ctrl+:)を合体するようにしてます。
具体的には、一定時間操作を待機するコマンド「Sleep,」を使っています。これにより日付と時間を入力することが可能になっています。
コード | 解説 |
---|---|
^f:: | Ctrl+Fを押したときに発動 |
Send, ^;{sc039} | Ctrl+;+スペースキーを押したことにする |
Sleep, 100 | 0.1秒待機する |
Send, ^: | 続いて、Ctrl+:を押したことにする |
return | AHKで必要なコード |
以下のようにそのまんまコピペでOKです。
例えば、以下のように割り当てた場合を紹介します。人によっては「Ctrl+数字」よりも「d=Date」、「t=Time」のように頭文字の方が好きかもしれませんね。
キー | 挿入されるもの |
---|---|
Ctrl+d | 日付 |
Ctrl+t | 時間 |
Ctrl+f | 日付と時間 |
以下のコードをコピペすると上記の表通りになります。
;-----Onenote-----
#IfWinActive,ahk_exe ONENOTE.EXE
^d:: ;Ctrl+Dで日付挿入
Send, +!d
return
^t:: ;Ctrl+Tで時間挿入
Send, +!t
return
^f:: ;Ctrl+Fで日付と時間挿入
Send,+!f
return
#IfWinActive
;-----Excel-----
#IfWinActive,ahk_exe EXCEL.EXE
^d:: ;Ctrl+Dで日付挿入(Ctrl+)
Send,^;
return
^t:: ;Ctrl+Tで時間挿入(Ctrl+:)
Send,^:
return
^f:: ;Ctrl+Fで日付と時間挿入
Send, ^;{sc039}
Sleep, 100
Send, ^:
return
CtrlやWindowsなどは修飾キーといって、書き方が特殊なので以下のサイトを参考にしてみてください。例えば、Ctrlだと「^」って感じです。
コードを貼れたら、ファイル→上書き保存をクリックして「×」で閉じます。
ファイルをダブルクリック、または右クリック→Run Scriptをクリックして実行します。
タスクトレイにAHKアイコンが表示されていればコマンド実行に成功です。このファイルが起動している限りは、日付挿入キーが統一されるはずです。
もしコマンド実行できずに何かしらのエラーが表示された場合はコマンドの記述が間違っています。もう一度確認してみましょう。
このコードの注意点
このコードは、あくまでExcelとOneNoteで用意されているタイムスタンプのショートカットキーを別のキーに置き換えているにすぎません。
つまり、置き換えたキーは使えなくなります。
例えば「Ctrl+数字」だと元々用意されているショートカットキーは以下になります。
使えなくなるキー | Excel | OneNote |
---|---|---|
Ctrl+1 | セルの書式設定 | タグの適用、マーク、またはクリアTo Do |
Ctrl+2 | テキストの太字 | タグの適用、またはクリア |
Ctrl+3 | テキストの斜体 | 質問タブの適用、またはクリア |
僕は上記のショートカットキーを元々使ってなかったのでよかったのですが、人によっては使えなくなると困るかもしれません。その場合は、上記以外のキーを割り当てるようにしましょう。
【応用】異なる書式を入力したい場合
「〇/〇〇/〇〇」のような標準の日付ではなく、「〇年〇月〇日」みたいなカスタマイズした書式を入力したい場合は、クリップボード履歴「Clibor」が役に立ちます。
詳しくは以下の記事を参考にしてみてください。はっきり言うと、初心者にはハードルが高いです。
上記記事の応用で、ExcelとOneNoteを同じホットキーで、別々の日付書式にする方法を書きます。CliborとAHKのコンビ技で可能です。
OneNoteでは、「2021年10月25日(月)」って形、Excelでは、「2021/10/25(月)」って形で入力できます。
流れは、以下の2ステップです。
- Cliborで別々の日付書式を設定する
- AHKのIf文でソフトごとに使い分ける
Cliborで別々の日付書式を設定する
CliborにExcel 用とOneNote 用の日付定型文を登録して、それぞれ別々のホットキーを割り当てます。
僕は、OneNoteをCtrl+Shift+O、ExcelをCtrl+Shift+Eにしました。
より詳しくは、上記記事を参考にしてみてください。
AHKのIf文でソフトごとに使い分ける
続いて、以下のコードをAHK ファイルに記述します。
;---------------------
;OneNote
;---------------------
#IfWinActive,ahk_exe ONENOTE.EXE
;Ctrl+DにOneNote用書式の日付挿入
^d:: ;入力するキー
Send, ^+o ;CliborでOneNote用に設定した日付挿入ショートカットキー
Return
#IfWinActive
;---------------------
;OneNote終了
;---------------------
;---------------------
;Excel
;---------------------
#IfWinActive,ahk_exe EXCEL.EXE
;Ctrl+DにExcel用書式の日付挿入
^d:: ;入力するキー
Send, ^+e ;CliborでExcel用に設定した日付挿入ショートカットキー
Return
#IfWinActive
;---------------------
;OneNote終了
;---------------------
Excelを起動している時だけ、Ctrl+Dに「Ctrl+Shift+E」を割り当てて、OneNoteを起動している時だけ、Ctrl+Dに「Ctrl+Shift+O」を割り当てるいうことです。
自分の環境に合ったキーを指定してあげましょう。
よくわかんないやって方はコメント欄に、登録している日付の定型文とこのキーで入力できるようにしたい旨を伝えてくだされば教えます。(僕に分かる範囲ですが…。)
感想
以上、 ExcelとOnenoteの日付、時間、日付と時間挿入ショートカットキーを統一する方法についてでした。
統一すると忘れなくてすむので最高です。しかも、左手だけで入力できるってのも便利です。