シート上の特定の範囲でIME設定を固定するExcelVBA

スポンサーリンク

シートにデータ入力するときの時短にIMEを固定する

Accessなどで入力フォームを作成すれば自動でカーソルの移動順や入力するデータの種類を固定できますが、フォームの作成には時間がかかります。

手軽に準備できて、かつExcelでのデータ入力を少し楽にするためにExcelのシートでIMEを固定する方法を使ったので紹介します。

シートの入力できる内容を絞り込むことでスピードアップ

例えば下記のシートのように「品名」「規格」「数量」「原単価」「売単価」を入力するシートがあったとします。

117-1

品名・規格についてはひらがな・カタカナ・漢字・英数・記号すべて入力しますが、数量・原単価・売単価を入力する際はすべて半角数字を入力することが多いと思います。

Enterで右にカーソルが移動するように設定していて、かつ他の列にはカーソルが移動しないようにロックをしていたとして、これらの入力ごとにキーを変更していると規格から数量にカーソルを移動した時と売単価から次の品名にカーソルを移動した時に全角半角の切り替えが必要になります。

切り替えを忘れて品名をアルファベットで入力してやり直したり、全角で数量を入れてEnterをクリックしてもカーソルが移動しなかったり面倒が増えてきます。

ExcelVBAでIMEを固定しておくことで、これらの手間を減らし、入力するスピードをアップすることができます。

スポンサーリンク

IME固定のExcelVBAコードサンプル

IME固定を固定するExcelVBAコードは入力規則を設定するValidationオブジェクトのIMEModeプロパティを設定します。
具体的には下記のようなコードになります。

Sub IMEを固定する()

With Range(Columns(1), Columns(2)).Validation ’A-B列の入力規則
.Delete ’入力規則を削除する
.Add Type:=xlValidateInputOnly ’入力規則は設定しない
.IMEMode = xlIMEModeHiragana ’全角ひらがな
End With

With Range(Columns(3), Columns(5)).Validation ’C-E列の入力規則
.Delete ’入力規則を削除する
.Add Type:=xlValidateInputOnly ’入力規則は設定しない
.IMEMode = xlIMEModeAlpha ’半角英数
End With

End Sub

コメント