特定の文字を常に半角で入力する方法

特定の文字を常に半角で入力する方法

2020.07.10

文章を書いていると、常に半角で入力したい文字というのは結構あるのです。

スペースやテンキーからの数字は常に半角で入力したい。というこだわりの強い方は結構いらっしゃいますね。
私はそれに加えてかっこ()なんかは全角では無駄なスペースを取りすぎるので、常に半角で入力したい人間です。

スペースや数字は比較的簡単にこういう設定ができるのですが、それ以外の文字は一筋縄ではいきません。今回はその方法を紹介していきます。

スペース

これは非常に簡単で、IMEの設定を変えるだけでできます。
今回はGoogle 日本語入力で説明していきます。

プロパティを選択

まず、タスクバーのGoogle 日本語入力のアイコンを右クリックしてプロパティを選択します。

スペースの入力 → 半角を選択

出てきたプロパティ画面で、スペースの入力半角を選択すると、常にスペースが半角として入力されるようになります。

テンキーからの数字

これも上と同じですね。

テンキーからの入力 → 半角を選択

プロパティ画面で、テンキーからの入力を半角にするだけです。

その他の文字

これが問題です。IMEのプロパティにはありませんからね…

方法

仕事効率化三銃士が一角 AHK(AutoHotKey)さんにご登場いただきます。

AHKはその名の通りホットキーを設定できます。例えばShift+1を押したときにCtrl+Cが入力される、なんてことができます。

この機能を使って、Shift+8を入力したとき、IMEを半角にShift+8を入力(半角のかっこが入力される。) → IMEを元の状態に戻す。という一連の動きをさせます。

なかなか面倒くさいですね…

準備

AHK本体の導入は長くなるのでこちらから

AutoHotKeyの導入方法
その名の通り、ホットキーを追加できるソフトです。 ただ、本質的には簡易プログラミング言語なので、マクロやGUIソフトなんかも作れるすごいやつ。 慣れればなんとい…
blog.nomadoor.net

これだけではIMEの変更ができないので、そのための準備をします。
こちらからIME20121110.zipをダウンロードした後、中にあるIME.ahkを、これから作るahkファイルと同じ階層にコピペしてください。

これだけで使えるようになりますが、IME.ahkの中身に動作を確認するコードが書かれているため、その部分を削除もしくは/* */で囲んでコメントにしてください。

設定

メモ帳を開いて、以下のように記述します。+8(Shift+8という意味)の場所を常に半角で入力したい文字に変更してください。

#Include IME.ahk

#UseHook
+8::
ime_mode := IME_GET()
IME_SET(0)
Send, +8
IME_SET(ime_mode)
Return

+9::
ime_mode := IME_GET()
IME_SET(0)
Send, +9
IME_SET(ime_mode)
Return
#UseHook Off

それぞれ何をやっているかは下の解説で

#Include IME.ahk    /*IME.ahkを使えるようにする*/

#UseHook                /*UseHookからUseHook Offで囲まれた範囲はフックを使う*/
+8::                    /*Shift+8を以下に変更*/
ime_mode := IME_GET()   /*現在のIMEモードを取得*/
IME_SET(0)              /*IMEを半角に設定*/
Send, +8                /*Shift+8を入力*/
IME_SET(ime_mode)       /*元のIMEモードに設定*/
Return
#UseHook Off

ただホットキーを設定するだけならUseHookを使う必要はないのですが、定義するキーと送るキーが同じ今回のような場合だと無限ループっぽくなってしまいエラーを吐き出します。これを回避するためにフックで囲んでいます。

これを好きな名前.ahkで保存して、ダブルクリックして起動すれば完了です。

まとめ

全角と半角が交じる文章は、切り替えだけでも労力がかかるもので、さらに間違って全角で入力してしまえばストレスもさることです。 

設定が面倒だと思うかもしれませんが、2度つまずいたらその原因を変えてしまったほうが良いのです。

一日苦労する方が一生転び続けるよりよっぽどましですからね。