こんにちは、生焼けにあたって2、3日ダウンしていた生焼けです。
今回はAutoHotKeyで今日の日付を簡単に入力する方法をご紹介します。
実例以外は基本キーの指定や、「return」を省略しています。
AutoHotkeyについてはこちらの記事で解説しています。
実例
「解説はいいから、実際の書き方だけ知りたい」という方のために先に実例をいくつか上げておきます。
シンプルに今日の日付を入力する
Ctrl+tで今日の日付をyyyymmdd形式(2022年1月1日→20220101)で入力するショートカットの書き方は
^t::
FormatTime,Now,,yyyyMMdd
Send,%Now%
Returnのように書きます。
例えば、今日が2022年12月1日だった場合、
20221201と入力されます。
特定のフォーマットで今日の日付を入力する
Ctrl+tで「今日は20xx年x月x日です。」のように入力する書き方は
^t::
FormatTime,Now,,今日はyyyy年MM月dd日です。
Send,%Now%
Returnのように書きます。
例えば、今日が2022年12月1日だった場合、
今日は2022年12月01日です。と入力されます。
今日の曜日を漢字一文字で入力する(日本語版の場合)
Ctrl+tで今日の曜日を漢字一文字で入力する書き方は
^t::
FormatTime,Now,,ddd
Send,%Now%
Returnのように書きます。
例えば、今日が2022年12月1日木曜日だった場合、
木と入力されます。
今日の曜日を省略された英語で入力する(日本語版の場合)
Ctrl+tで今日の曜日を省略英語で入力する書き方は
^t::
FormatTime,Now, L0x0409,ddd
Send,%Now%
Returnのように書きます。
例えば、今日が2022年12月1日木曜日だった場合、
Thuと入力されます。
特定のソフトでのみ今日の日付を入力する
Windows標準のメモでのみ動作し、Ctrl+tで今日の日付をyyyymmdd形式(2022年1月1日→20220101)で入力するショートカットの書き方は
#IfWinActive ahk_exe notepad.exe
^t::
FormatTime,Now,,yyyyMMdd
Send,%Now%
Return
#IfWinActiveのように書きます。
例えば、今日が2022年12月1日だった場合、
20221201と入力されます。
明日の日付を入力する
Ctrl+tで明日の日付をyyyymmdd形式(2022年1月1日→20220101)で入力するショートカットの書き方は
^t::
Now := A_Now
EnvAdd, Now , 1,days
FormatTime,Tomorrow, %Now%, yyyyMMdd
Send,%Tomorrow%
Returnのように書きます。
例えば、今日が2022年12月1日だった場合、
20221202と入力されます。
構文
この章ではコマンド「FormatTime」の書き方について解説します。
日付を入力するコマンド「FormatTime」の構文は
FormatTime, 変数, タイムスタンプ, 出力の仕方の指定となります。
それぞれの項目について解説していきます。
変数
出力したい変数名を指定できます。
「Now」「Today」「kyou」など、自分のわかりやすい文字列を指定します。
タイムスタンプ
出力したい日付を指定します。
省略すると現在の時間が指定されます。
日付と時間を含めたYYYYMMDDHH24MISS形式で指定できますが、20221201(2022年12月1日のこと)のように時間を省略した形でも認識するようです。
出力の仕方の指定
出力したい日付の書き方を指定できます。
様々な書き方がありますが、「yyyyMMdd」を用いた書き方が使いやすいです。
詳しい書き方は次の章でご紹介します。
参考:
「出力の仕方の指定」の書き方
この章では、下記の「出力の仕方の指定」の部分の書き方を解説します。
FormatTime, 変数, タイムスタンプ, 出力の仕方の指定様々な書き方がありますが、今回は日付に関するもので使いやすいものをご紹介します。
基本の書き方
年を表す「y」と月を表す「M」と日付や曜日を表す「d」を組み合わせて出力したい書き方を指定できます。
例えば、2022年12月1日を20221201と表示させたいならば
FormatTime, Now, ,yyyyMMdd
Send,%Now%と「y」や「M」を組み合わせて書いていきます。
それぞれ「y」や「M」などの数で書き方が指定されます。
つまり、「y」4つで西暦4桁を、「y」2つで西暦の下2桁を表す…といったような感じです。
それぞれ「y」「M」「d」の書き方について下記で解説していきます。
わかりやすいように以下からは「Send,%Now%」部分は省略しています。
年
yの個数で年の書き方を指定することができます。
yyyy(4桁で書く)
2022年の場合「2022」と出力されます。
FormatTime, Now, , yyyyyy(2桁で書く)
2022年の場合「22」と出力され、2002年の場合「02」と出力されます。
FormatTime, Now, , yyy(1~2桁で書く)
2022年の場合「22」と出力され、2002年の場合「2」と出力されます。
FormatTime, Now, , y月
Mの個数で月の書き方を指定することができます。
MM(2桁で書く)
12月の場合「12」と出力され、1月の場合「01」と出力されます。
FormatTime, Now, , MMM(1~2桁で書く)
12月の場合「12」と出力され、1月の場合「1」と出力されます。
FormatTime, Now, , MMMMM(X月表記で書く)※日本語版のみ
ソフトのバージョンが日本語版のみですが、漢字で月名を出力することができます。
12月の場合「12月」と出力され、1月の場合「1月」と出力されます。
FormatTime, Now, , MMMM月(英語)
月名を英語で出力したい場合、「タイムスタンプ」の項目に「L0x0409」を追加します。
FormatTime,変数, L0x0409,出力の仕方の指定MMM(英語の短縮形で書く)
12月の場合「Dec」と出力され、1月の場合「Jan」と出力されます。
FormatTime, Now, L0x0409, MMMMMMM(英語で書く)
12月の場合「December」と出力され、1月の場合「January」と出力されます。
FormatTime, Now, L0x0409, MMMM日にち
dの個数で日にちの書き方を指定することができます。
dd(2桁で書く)
31日の場合「31」と出力され、1日の場合「01」と出力されます。
FormatTime, Now, , ddd(1~2桁で書く)
31日の場合「31」と出力され、1日の場合「1」と出力されます。
FormatTime, Now, , d曜日(漢字) ※日本語版のみ
ソフトのバージョンが日本語版のみですが、漢字で曜日を出力することができます。
ddd(漢字一文字で書く)
日曜日の場合「日」と出力されます。
FormatTime, Now, , ddddddd(漢字で書く)
日曜日の場合「日曜日」と出力されます。
FormatTime, Now, , dddd曜日(英語)
曜日を英語で出力したい場合、「タイムスタンプ」の項目に「L0x0409」を追加します。
FormatTime,変数, L0x0409,出力の仕方の指定ddd(英語の短縮形で書く)
日曜日の場合「Sun」と出力されます。
FormatTime, Now, L0x0409, ddddddd(英語で書く)
日曜日の場合「Sunday」と出力されます。
FormatTime, Now, L0x0409, dddd日付を文字と組み合わせて書く
日本語
英語以外の文字であれば、そのまま出力したい文章の間に「y」や「m」を挟めばOKです。
FormatTime,Now,,今日はyyyy年M月dd日です。今日が2022年12月1日の場合、「今日は2022年12月01日です。」と出力されます。
英語
英語であれば誤作動することがあるので、「’」で囲んで書きます。
FormatTime,Now,,'Today is 'yyyyMMdd2022年12月1日の場合、「Today is 20221201」と出力されます。
「’」で囲まなかった場合、「To1a22 i29 yyyyMMdd」のように「d」や「y」などに反応してしまいます。
明日の日付を書きたい
明日の日付を出力したい場合は、いくつか組み込み変数(ソフト側が用意している変数)や他のコマンドを使用する必要があります。
やり方としては、
今日の日付を組み込み変数で取得→今日の日付に1日分を足す→「FormatTime」で出力したい形に整える
…といったものになります。
現在の日付を表す組み込み変数
現在の日付を表す組み込み変数は「A_Now」です。
Send,%A_Now%とすると、現在の日付が日付と時間を含めたYYYYMMDDHH24MISS形式で出力されます。
これに1日分を足していきます。
参考
日付の計算
現在の日付を表す組み込み変数の「A_Now」に1日分を足したいのですが、
Tomorrow := A_Now+1
Send,%Tomorrow%としても、日付に1日分が足されることはありません。
そこで、日付を計算できるコマンド「EnvAdd」を使用します。
EnvAddコマンド
EnvAddコマンドで日付を足すには下記のように書きます。
EnvAdd, 足したい対象(変数) , 足したい数,days「足したい対象」には日付の入った変数を、「足したい数」の方には足したい日数を指定します。
例えば、今日の日付に1日分を足すには
Now := A_Now
EnvAdd, Now , 1,daysのように書きます。
これは、「Now」という変数に今日の日付を表す組み込み変数である「A_Now」を入れ、「EnvAdd」コマンドで1日分を足す…ということを書いています。
参考
明日の日付を書くには
上記のことを利用して、明日の日付をyyyymmdd形式(2022年1月1日→20220101)で出力するショートカットを書くと、
Now := A_Now
EnvAdd, Now , 1,days
FormatTime,Tomorrow, %Now%, yyyyMMdd
Send,%Tomorrow%のようになります。
応用
今日の日付のフォルダーを作成する
今日の日付の名前のフォルダーを、DドライブのfolderAの中に作成するショートカットの書き方は
^+!q::
FormatTime,Now, , yyyyMMdd
FileCreateDir,D:\folderA\%Now%
returnのように書きます。
まとめ
今回は、AutoHotKeyで日付をあれやこれやする方法を解説しました。
ファイルの操作などと組み合わせると、「フォルダーを今日の日付で作成」といったこともできてすごく便利だと思います。



