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

Excelを使っているとセルによって「半角」や「ひらがな」などIMEの入力モードを切り替えるのが面倒な場合がありますよね。
そんな時はValidationオブジェクト(入力規則)を使ってIMEモードをコントロールする事で、Accessのフォームのように入力モードを自動で切り替える事が出来ます。
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モードをコントロールする方法について説明しました。
今回のサンプルファイルは以下のリンクからダウンロード可能です。



