快適なATOKだが、唯一の不満!
日本語変換ツールは、Windows標準の「IME」ではなく「ATOK」を愛用している。
一度ATOKを使ってしまったら、もうIMEには絶対に戻れないくらい快適。
そしてATOKの設定で、キーボードから文字を入力しているとき(日本語入力モード)、半角数字を入力したいときはテンキーから入力すれば必ず半角のまま入る設定にしてある。(ATOK設定の「テンキーからの入力を必ず半角にする」のチェックON)
なので、例えばメールを書いているとき、数字とかを記載する場合はテンキーから入れることで、いちいち半角に変換する手間がなく快適だ。
テンキーにない[,][:][=]などの文字がスゴク面倒
だが、例えば[,][:][=]など、数字や時間などを記載するときに頻繁に使う文字だがテンキーにはない。
これらを入力するには、一旦[、]キーを入力し、半角に変換する必要があった。
「1,000」とか入力しようとすると[1][、](半角に変換)[0][0][0]と打つ必要があり、とーーっても面倒だった。(些細なことではあるが、とてもストレスがたまる。。)
AutoHotkeyで改善できた!!!!!!
いろいろと調べてみたら「AutoHotkey」というキーボードのキーをカスタマイズするフリーソフトがあるではないか!!
AutoHotkeyは、スクリプトをプログラミングすることで記述していくので、かなりハードルが高いが、その分 極めればさまざまな機能を作り込んでいくことが可能。
■参考サイト
AutoHotkey Wiki
AutoHotkeyとは
テンキーの「0」を修飾キー化
以下、インストールからスクリプトの記載まで備忘録として残しておきます。
AutoHotkey の設定方法
自分で設定した手順をメモしていきます。
インストールまで
(参考:このときのバージョンは「v1.1.16.05 – September 28, 2014」)
これで、「C:\Program Files\AutoHotkey\AutoHotkey.exe」がインストールされる。
スクリプトの編集
– – – 2014.10.03追記 – – – – –
上記の、「{ASC 48}」の指定では「秀丸メール」で誤動作することが発覚!
調べたところ、「{ASC XX}」の設定は、「内部的にはAltを押しながらテンキーの数字を送信している」ということが判明。(秀丸メール(秀丸)では、「Alt+X」というキー割り当てがしてあり、どうやらそれとバッティングしているらしい。。)
※参考サイト:http://ahkwiki.net/Send の「特殊キー名一覧」「直接指定」の項目参照
なので、ASCIIコードによる設定ではなく、「Unicode(ユニコード)による設定」に変更!
– – – 2015.08.30追記 – – – – –
PC入れ替えに伴いATOKも「ATOK2005」→「ATOK2015」にしたところ、、
ATOK2015では、上記が全角で入力されてしまうことが発覚。。。
なので、一旦日本語入力を解除することにした。
キー入力の順番としては[半角/全角/漢字キー]+[Unicodeの当該キー]+[半角/全角/漢字キー]の一連を入力する設定に。
– – – 2015.08.31追記 – – – – –
上記の対処では日本語入力モードがOFFのときに「0」が入力できないことが発覚。
なので、かなり面倒になったが以下の方法とした。
・現在の日本語モード(ON/OFF)を変数に保存
・(現在の設定にかかわらず)日本語モードをOFF
・カンマなどのコードを送信
・当初の日本語モードに戻す
※IME_GET/IME_SET関数を使うので、前提としてこれらのライブラリを設置
参考:http://blechmusik.hatenablog.jp/entry/20120126/1327510037
(1) http://www1.axfc.net/uploader/so/2243229 から「ime.ahk」をDL
(2) DLファイルを解凍し、「ime.ahk」をAutoHotkey.exeのあるフォルダ内の「Lib」フォルダにコピー
以下、スクリプト
————————————————————–
; テンキーから半角[,][:][=][\]を入力する
; ■[0] →[0]
Numpad0::
ime_mode := IME_GET()
IME_SET(0)
Send {U+0030}
IME_SET(ime_mode)
Return
; ■[0]+[.]→[,]
Numpad0 & NumpadDot::
ime_mode := IME_GET()
IME_SET(0)
Send {U+002c}
IME_SET(ime_mode)
Return
; ■[0]+[1]→[:]
Numpad0 & Numpad1::
ime_mode := IME_GET()
IME_SET(0)
Send {U+003a}
IME_SET(ime_mode)
Return
; ■[0]+[2]→[=]
Numpad0 & Numpad2::
ime_mode := IME_GET()
IME_SET(0)
Send {U+003d}
IME_SET(ime_mode)
Return
; ■[0]+[3]→[\]
Numpad0 & Numpad3::
ime_mode := IME_GET()
IME_SET(0)
Send {U+005c}
IME_SET(ime_mode)
Return
————————————————————–
※解説
・「Numpad0」は、「テンキーにある[0]」のこと。
・「Numpad0 & NumpadDot」は、テンキーから[0]を押しながら[.]を押したとき。
・「Send XXX」は、「XXX」を出力
・「{ASC 44}」は、ASCIIコードで「10進の[44]」
・「{U+002c}」は、Unicodeで「16進の[0x002c]=[,]」
※なぜASCIIコードで出力しているかと言うとasciiコード直設定にしておかないと 日本語モードでは全角で入ってしまうため。
※なぜUnicodeコードで出力しているかと言うとUnicode直設定にしておかないと 日本語モードでは全角で入ってしまうため。
※なぜ「Numpad0::」(1行目)を設定しているかというと、これがないと[0]単独で文字が入力できなくなるから。
※唯一の懸念
このスクリプトを入れてしまうと、テンキーの[0]長押しで 連続入力ができなくなる。
要は「0000000000000000000000000000000000……..」なんていう連続入力ができなくなるのだが、そんな入力することはほとんどない。
例えあっても、テンキーでない数字の[0]キー([わ]キー)を連続押しして半角変換すれば良い。そのデメリット以上に メリットの方が遙かに大きいと判断。
– – – 2021.09.06追記 – – – – –
Logicoolのキーボードを導入したら、「ENDキー」(行末へ移動)がとても使いにくくなった。。
なので、AutoHotkeyに追加してみた。
以下、スクリプト
————————————————————–
; ■[0]+[*]→[Home](行頭にカーソル移動)
Numpad0 & NumpadMult::
ime_mode := IME_GET()
IME_SET(0)
Send {Home}
IME_SET(ime_mode)
Return
; ■[0]+[-]→[End](行末にカーソル移動)
Numpad0 & NumpadSub::
ime_mode := IME_GET()
IME_SET(0)
Send {END}
IME_SET(ime_mode)
Return
————————————————————–
これで、
[0]+[*]→[Home](行頭にカーソル移動)
[0]+[-]→[End] (行末にカーソル移動)
できるようになった!!
「AutoHotkey.exe」を起動すればOK!
設定が終わったら「AutoHotkey.exe」を起動して試してみよう!
ちなみに、PCの電源投入時に自動起動させるには、「AutoHotkey.exe」を「スタート」メニューの「すべてのプログラム」「スタートアップ」に登録しておけば良い。
ホームページ制作のこと、ホームページの運営でわからないことや困っていることがありましたら、「株式会社アットライズ」までお気軽にご相談ください。
株式会社アットライズのホームページはこちら