今日の年月日と曜日を、指定の形式で素早く入力したい。日本語入力支援アプリGoogle IMEなら、「きょう」と入力するだけで変換候補に今日の日付が出てくる。これよりも早く、正確に今日を入力する方法を、AutoHotKey で実装した。
方法
AutoHotKey のHotstring を使う
Hotstring とは
ユーザーが特定の文字列をタイプしたときに、アクションを発生させられる機能
スクリプト
my_hotstring.ahk
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Hotstring のオプション. 自分好み. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; - 終了文字無しで発動させる ; 0 自動置換後、最後に終了文字を入力しない #Hotstring * #Hotstring O ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;今日の日付を入力する ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;w[[ → 年月日+曜日を入力する Hotstring 本体 ::w[[:: FormatTime, TimeString,, LongDate FormatTime, downum,, WDay dowstr := get_dowstr(downum) clipboard = %TimeString% %dowstr% Send, +{INSERT} return ;曜日をカッコつきで返す get_dowstr(theNum) { dowtable := "日月火水木金土" ; Wday は日曜日が 1、 ; StringMid のStartChar は、取り出す部分の開始位置。StringGetPosと違い、1文字目が 1。 dowstr := "" StringMid, dowstr, dowtable, %theNum%, 1 return "(" dowstr ")" } |
使い方
普段使いするなら、このmy_hotstring.ahk をランチャーに入れて実行するか、Windows のスタートアップで起動時に実行されるようにする
“w[[” と入力すると、”2020年1月17日 (金)” のように出力される
解説
- ::{}:: の{}部分が、反応するタイプ入力部分
- FormatTime で今日の日付を取得している
- 曜日は数字で返ってくる
配列を使おうとしたがうまく使えなかったため、dowtable に1文字ずつ曜日をセットし、StringMid で指定位置の曜日文字を切り取っている
参考
AutoHotkey の Hotstring で曜日文字列を素早く入力する
http://stakiran.hatenablog.com/entry/2018/01/19/221444
編集履歴
- get_dowstr() を引数指定で、本日以外の曜日を選べるように変更
追記
2020年11月27日 (金)
ファイル名に日付を入力して重複を避けるためのHotstring を追加した。
my_hotstring.ahk
1 2 3 4 5 6 7 8 9 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;今日の日付を半角8桁で入力する ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;q[[ 今日を8桁で入力する ::q[[:: FormatTime, TimeString,, yyyyMMdd clipboard = %TimeString% Send, +{INSERT} return |
使い方
“q[[” と入力すると、”20200117″ のように8桁の年月日が出力される