マクロで日本語入力モードを設定

マクロ講座62回 
マクロで日本語入力モードを設定

Validation.IMEMode プロパティ Excel2013 マクロ講座 62回

入力規則でIMEを設定する

いざ日本語入力しようと思った時に、IMEのモードが半角英数だったりすることがあります。 氏名や住所の入力欄には、日本語入力をONにしておくと便利ですね。
範囲や列ごとに日本語入力モードのオンとオフを切り替えたり、半角英数字のみの入力を許可したりする設定をマクロで行いましょう。

(サンプルファイルは、こちらから マクロ62回サンプルデータ

日本語入力モードを自動でオンにする

エクセルで名簿入力などの作業をする時には、数値と日本語入力の切り替えを頻繁に行わなければなりません。 入力の切り替えをしながらの作業は、とても面倒ですし効率もよくありません。例でもIMEがオフになっているので、切り替える必要があります。 セル範囲に、データの入力規則でIMEの日本語入力をオンに設定しておくと、毎回切り替える手間が省けます。
IMEの入力モードを設定するマクロ1
マクロでもセルにIMEモードを設定することができます。 IMEモードを設定するには、ValidationオブジェクトのIMEModeプロパティを使用します。
Addメソッドの引数Typeには、ほかに入力規則が必要なければ、すべての値を意味するxlValidatelnputOnlyを指定します。 IME入力モードは、IMEModeプロパティに次の定数を使って指定します。
IMEの入力モードを設定するマクロ2
日本語入力をONにしておくコードは次のようになります。対象の範囲は、A2:A7です。
Sub IMEを設定()
    With Range("A2:A7").Validation
        '入力規則を削除
        .Delete
        '入力の制限なし
        .Add Type:=xlValidateInputOnly
        .IMEMode = xlIMEModeOn
    End With
End Sub
    

IMEの入力モードを設定するマクロ3

IMEモードを半角英数に設定する

メールアドレスの入力欄などには、半角英数字の設定にしておきます。定数にxlIMEModeAlphaを指定します。
Sub IMEに半角英数を設定()
    With Range("D2:D7").Validation
        .Delete
        .Add Type:=xlValidateInputOnly
        .IMEMode = xlIMEModeAlpha
    End With
End Sub
    
IMEの入力モードを設定するマクロ4
サンプルコードでは、範囲をRange("D2:D7")のように指定しましたが、 Selectionにしておくと、使い回しができるので便利です。
    With Selection.Validation