【AutoHotkey】ExcelとOnenoteの日付挿入ショートカットキーを統一する方法

2021年10月24日AutoHotkey,OneNote

AutoHotkeyのアイコン

この記事では、ExcelとOnenoteの日付、時間、日付挿入ショートカットキーを統一する方法について書きます。

【AutoHotkey】ExcelとOnenoteの日付挿入ショートカットキーを統一する方法

AutoHotkey と呼ばれるキーに別の機能を割り当てれるソフトを使うことで、ExcelとOnenoteの日付挿入ショートカットキーを統一できます。

そもそも日付挿入のショートカットキーは、ExcelがCtrl、OnenoteがAltShiftDと異なっています。

これはとても不便です。AutoHotkey(以下AHK)を使うことで、どちらも日付挿入を「Ctrl1」に統一する…みたいなことができます。

僕は、どっちがどっちのショートカットキーだったかよく忘れるので統一できるのはとても便利です。

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】キーに別の機能(キー)を割り当てるソフトの使い方 | ナポリタン寿司のPC日記

僕のサイトが見にくい場合は、以下のサイトが参考になります。コメント欄にて僕も何度かコメントさせていただきました。とても見やすくて分かりやすいです。

参考:【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】Ctrl1に日付挿入(ShiftAltD)割り当て」の1つに絞って解説します。他も同じ仕組みです。

コードは「^1::Send, +!d」となっています。これを分かりやすく変換すると以下の表になります。

コード解説
^1Ctrl1を押したときに発動
::(AHK上の変換コード)
以下のキーに割り当てる
Send,以下のキーを割り当て
+!dShiftAltDを押したことにする

つまり、Ctrl1を押したらShiftAltD(Onenoteの日付挿入キー)を押したことにするという意味です。

3.Excelの日付、時間挿入について

実はExcelには日付と時間を同時入力するショートカットキーが存在しません。そこで日付挿入(Ctrl+;)と時間挿入(Ctrl+:)を合体するようにしてます。

具体的には、一定時間操作を待機するコマンド「Sleep,」を使っています。これにより日付と時間を入力することが可能になっています。

コード解説
^f::CtrlFを押したときに発動
Send, ^;{sc039}Ctrl+;スペースキーを押したことにする
Sleep, 1000.1秒待機する
Send, ^:続いて、Ctrl+:を押したことにする
returnAHKで必要なコード

以下のようにそのまんまコピペでOKです。

ExcelとOnenoteのタイムスタンプ統一コード

例えば、以下のように割り当てた場合を紹介します。人によっては「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

CtrlWindowsなどは修飾キーといって、書き方が特殊なので以下のサイトを参考にしてみてください。例えば、Ctrlだと「^」って感じです。

参考:【AutoHotkey】修飾キーの使い方と使用例 | オカメJP|あるドイツ在住日本語教師のブログ

コードを貼れたら、ファイル→上書き保存をクリックして「×」で閉じます。

ファイルをダブルクリック、または右クリック→Run Scriptをクリックして実行します。

右クリック→Run Script

タスクトレイにAHKアイコンが表示されていればコマンド実行に成功です。このファイルが起動している限りは、日付挿入キーが統一されるはずです。

タスクトレイのアイコン

もしコマンド実行できずに何かしらのエラーが表示された場合はコマンドの記述が間違っています。もう一度確認してみましょう。

このコードの注意点

このコードは、あくまでExcelとOneNoteで用意されているタイムスタンプのショートカットキーを別のキーに置き換えているにすぎません。

つまり、置き換えたキーは使えなくなります。

例えば「Ctrl+数字」だと元々用意されているショートカットキーは以下になります。

使えなくなるキーExcelOneNote
Ctrl+1セルの書式設定タグの適用、マーク、またはクリアTo Do
Ctrl+2テキストの太字タグの適用、またはクリア
Ctrl+3テキストの斜体質問タブの適用、またはクリア

僕は上記のショートカットキーを元々使ってなかったのでよかったのですが、人によっては使えなくなると困るかもしれません。その場合は、上記以外のキーを割り当てるようにしましょう。

【応用】異なる書式を入力したい場合

「〇/〇〇/〇〇」のような標準の日付ではなく、「〇年〇月〇日」みたいなカスタマイズした書式を入力したい場合は、クリップボード履歴「Clibor」が役に立ちます。

詳しくは以下の記事を参考にしてみてください。はっきり言うと、初心者にはハードルが高いです。

上記記事の応用で、ExcelとOneNoteを同じホットキーで、別々の日付書式にする方法を書きます。CliborとAHKのコンビ技で可能です。

OneNoteでは、「2021年10月25日(月)」って形、Excelでは、「2021/10/25(月)」って形で入力できます。

流れは、以下の2ステップです。

  1. Cliborで別々の日付書式を設定する
  2. AHKのIf文でソフトごとに使い分ける

Cliborで別々の日付書式を設定する

CliborにExcel 用とOneNote 用の日付定型文を登録して、それぞれ別々のホットキーを割り当てます。

僕は、OneNoteをCtrlShiftO、ExcelをCtrlShiftEにしました。

定型文の編集

より詳しくは、上記記事を参考にしてみてください。

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を起動している時だけ、CtrlDに「CtrlShiftE」を割り当てて、OneNoteを起動している時だけ、CtrlDに「CtrlShiftO」を割り当てるいうことです。

自分の環境に合ったキーを指定してあげましょう。

よくわかんないやって方はコメント欄に、登録している日付の定型文とこのキーで入力できるようにしたい旨を伝えてくだされば教えます。(僕に分かる範囲ですが…。)

感想

以上、 ExcelとOnenoteの日付、時間、日付と時間挿入ショートカットキーを統一する方法についてでした。

統一すると忘れなくてすむので最高です。しかも、左手だけで入力できるってのも便利です。

Posted by ナポリタン寿司