エクセルでIMEの入力モードをコントロールする

Excelを使っているとセルによって「半角」や「ひらがな」などIMEの入力モードを切り替えるのが面倒な場合がありますよね。
そんな時はValidationオブジェクト(入力規則)を使ってIMEモードをコントロールする事で、Accessのフォームのように入力モードを自動で切り替える事が出来ます。

IMEモードをコントロールする

今回は以下の事例のように列全体に入力規則を設定します。

ExcelのIMEモードをコントロールする

A列:IMEモード「無効」
B列:IMEモード「ひらがな」
C列:IMEモード「ひらがな」
D列:IMEモード「無効」

Validationオブジェクトを使ったVBAサンプル

Private Sub Workbook_Open()

'列AのIMEモードを「無効」にする。
    Columns("A").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateInputOnly
        .IMEMode = xlIMEModeDisable
    End With

'列BのIMEモードを「ひらがな」にする。
    Columns("B").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateInputOnly
        .IMEMode = xlIMEModeHiragana
    End With

'列CのIMEモードを「ひらがな」にする。
    Columns("C").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateInputOnly
        .IMEMode = xlIMEModeHiragana
    End With

'列DのIMEモードを「無効」にする。
    Columns("D").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateInputOnly
        .IMEMode = xlIMEModeDisable
    End With

    Range("A2").Select

End Sub

VBAコードの解説

サンプルコードではIMEモードを指定する列(Columns)をselectし、Validationオブジェクトを参照し、いったん入力規則を削除(Delete)した後にAddメソッドで入力規制を設定します。
更にIMEModeプロパティで日本語の入力規則の内容を設定します。
使用できる定数は以下の通りです。

メンバ名 説明
xlIMEModeAlpha 半角英数字
xlIMEModeAlphaFull 全角英数字
xlIMEModeDisable 無効
xlIMEModeHiragana ひらがな
xlIMEModeKatakana カタカナ
xlIMEModeKatakanaHalf 半角カタカナ
xlIMEModeNoControl コントロールなし
xlIMEModeOff オフ (英語モード)
xlIMEModeOn オン (日本語モード)

Validationオブジェクトには上記以外にも多くのプロパティがあり細かく設定が可能ですが今回はIMEModeプロパティについて説明させていただきました。

重複関連エントリー

以上、今回はExcelでIMEモードをコントロールする方法について説明しました。

今回のサンプルファイルは以下のリンクからダウンロード可能です。