前回の記事でも書いたようにノートPCを買ったのですが、僕が買ったノートPCにはテンキーがついていません。
なので数字は上段のキーで入力しないといけないのですが、使いもしない全角数字が入力されて不便です。
そこでAHKで半角英数のみが入力されるようにAHKを書いてみました。
と言っても何度が失敗したのでその過程も合わせて書いていきます。
失敗例1
ネット情報をもとに以下のように書いてみました。
1::Numpad1
2::Numpad2
3::Numpad3
4::Numpad4
5::Numpad5
6::Numpad6
7::Numpad7
8::Numpad8
9::Numpad9
0::Numpad0
数字をそれぞれテンキーの数字に置き換えることで、半角数字化しています。
しかしこれだと、Excelのショートカットキーでテンキーと数字キーでは扱いが違うためショートカットが効かない問題が起こりました。
そこで以下のようにしてみました。
失敗例2
0::
IME_SET(0)
Send,0
Return
こちらはIME.AHKで半角化した後に数字を送るようにしています。
しかし、これでは0が0を呼ぶループになっており何も遅れませんでした。
成功例1
そこで少し変えてみました。
$0::
IME_SET(0)
Send,0
Return
サブルーチンを止める$を最初に付けることでループを回避できます。
これで数字を半角数字で入力できるようになりました。
しかしこれではコードを0~9までの10個も書かないと行けずコードが長くなります。
そこでもう一工夫してみます。
失敗例3
打ったキーをそのまま入力するので「%A_ThisHotkey%」で入力キーを収得してコードをまとめてみます。
$0::
$1::
$2::
$3::
$4::
$5::
$6::
$7::
$8::
$9::
IME_SET(0)
Send,%A_ThisHotkey%
Return
結果は$1が入力されました。
どうやらサブルーチン処理もそのまま取得するようです。
成功例2
そこでサブルーチン処理を外して先頭に「#UseHook」を追加しました。
このコードを入れてい置くと「$」がなくてもループを回避してくれます。
#UseHook
0::
1::
2::
3::
4::
5::
6::
7::
8::
9::
IME_SET(0)
Send,%A_ThisHotkey%
Return
まとめ
これでノートPCのようにテンキーのないパソコンでもストレスなく半角数字が入力できるようになりました。
AHKには無限の可能性があります。
みなさんも色々ためしみましょう。
1234567890
コメント