キーボードショートカットで日付と時刻を入力する【AutoHotkey】

ほしいと思いつつ長々放置していたのですが、先日キーボードにテンキーレイヤーを作った際についでにキーボードから日付入力できるようにしたので、設定方法を書いておきます。

使ったのはAutoHotkeyというフリーソフトです。キーを押したときの挙動変更やショートカットの作成ができるソフトで、ショートカットの内容はマクロのように組めるので、条件分岐をしたりシステムから現在時刻をひっぱってきたり、動的な処理が可能です。

なお、Windows限定のソフトなのでmacのPCは別の方法で設定する必要があります。今後機会があればそちらの設定方法も書くかも。

手順① AutoHotkeyのスクリプトを作成

まず、公式サイトからAutoHotkeyをインストールします。
https://www.autohotkey.com

インストールできたらエクスプローラーを開いて、任意のフォルダの空いている場所を右クリックします。新規作成の中にAutoHotkey scriptという項目がありますので、こちらをクリックしてください。

下記のような画面が出ます。ファイル名を聞かれているので任意の名前をつけて、Emptyを選択したままEditをクリックしてください。

自動でテキストエディタ(Win標準だとメモ帳)が開きます。
ここに設定内容を記載していきます。今回は2パターンの設定を作りましたので、お好みの方をコピペし保存してください。JISキーボード向けです。

Shift + ; で日付、Shift + : で時刻を入力するパターン

Excelやスプレッドシートと同じような感覚で入力できるショートカットです。Ctrlを追加すると区切りなしの入力ができます。 ついでにCapsLockを無効化していますが、不要な場合は*CapsLock::SetCapsLockState("AlwaysOff")を削除してください。

#Requires AutoHotkey v2.0

; クリップボード経由でテキストを貼り付け
PasteText(str) {
    cSaved := ClipboardAll()
    A_Clipboard := str
    Send("^v")                  ; Ctrl + V
    Sleep(50)                   ; 貼り付け処理待ち
    A_Clipboard := cSaved
}

; CapsLockを無効化
*CapsLock::SetCapsLockState("AlwaysOff")

; 日付入力【Shift + ;】
+`;:: PasteText(FormatTime(, "yyyy/MM/dd"))

; 時刻入力【Shift + :】
+`::: PasteText(FormatTime(, "HH:mm:ss"))

; 区切りなし日付入力【Ctrl + Shift + ;】
^+`;:: PasteText(FormatTime(, "yyyyMMdd"))

; 区切りなし時刻入力【Ctrl + Shift + :】
^+`::: PasteText(FormatTime(, "HHmmss"))

CapsLock + ; で日付、CapsLock + : で時刻を入力するパターン

Shiftを追加すると区切りなしの入力ができます。CapsLockはショートカットに使われることはまずないと思うので、競合の心配がないことがメリットです。

#Requires AutoHotkey v2.0

; クリップボード経由でテキストを貼り付け
PasteText(str) {
    cSaved := ClipboardAll()
    A_Clipboard := str
    Send("^v")                  ; Ctrl + V
    Sleep(50)                   ; 貼り付け処理待ち
    A_Clipboard := cSaved
}

; CapsLockを無効化
*CapsLock::SetCapsLockState("AlwaysOff")

#HotIf GetKeyState("CapsLock", "P")

; 日付入力【CapsLock + ;】
`;:: PasteText(FormatTime(, "yyyy/MM/dd"))

; 時刻入力【CapsLock + :】
`::: PasteText(FormatTime(, "HH:mm:ss"))

; 区切りなし日付入力【CapsLock + Shift + ;】
+`;:: PasteText(FormatTime(, "yyyyMMdd"))

; 区切りなし時刻入力【CapsLock + Shift + :】
+`::: PasteText(FormatTime(, "HHmmss"))

#HotIf

手順② AutoHotkeyを起動

保存できたらファイルを閉じ、今作った.ahkファイルをエクスプローラー上でクリックして起動します。
起動するとタスクトレイ(タスクバーの右側にある三角)の中にAutoHotkeyのアイコンが表示されます。

この状態の間は設定した通りのショートカットが利用できます。テキストを入力できるところで試してみてください!

スタートアップに配置

このままだとパソコンを再起動したときにまた.ahkファイルを起動しなおさないと使えません。
パソコンを起動したときに自動でAutoHotkeyも起動されるように設定します。

Windowsキー+Rを押すと下記のウィンドウが表示されます。テキストボックスにshell:startupと入力してOKを押してください。

スタートアップというフォルダが開くので、ここに先ほど作成した.ahkファイルのショートカットを格納します。

これでOKです。

日付を入力する機会が前より減ってはいるのですが、やっぱりふとしたときにとても便利です。ぜひ使ってみてください!

  • 5
  • 1
  • 5

きやけ

いろんなものをちょっとずつかじって、結局よくわからない人です。ときどきなにかをつくります。

作者のページを見る

寄付について

「novalue」は、‟一人ひとりが自分らしく働ける社会”の実現を目指す、
就労継続支援B型事業所manabyCREATORSが運営するWebメディアです。

当メディアの運営は、活動に賛同してくださる寄付者様の協賛によって成り立っており、
広告記事の掲載先をお探しの企業様や寄付者様を随時、募集しております。

寄付についてのご案内