AHKで全角数字を封印

AHK
Aerial view of Lower Manhattan at sunset. New York. USA

前回の記事でも書いたようにノート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

コメント

タイトルとURLをコピーしました