ユーザーフォームのテキストボックスの文字を半角英数に指定する方法

ユーザーフォーム(UserForm)に配置して文字を入力可能にするテキストボックス(TextBox)に、全角ひらながのみ入力可能にしたり、半角英数のみ入力可能にしたいことありませんか?

面倒なVBAコードを記述しなくても、テキストボックスのプロパティで指定すれば簡単にできますよ。

プロパティウィンドウで入力文字を指定

テキストボックスの初期設定は文字の入力モードは指定されていないので、作成者の意図しない入力をされてしまった場合に正しくワークシートに反映されないことが発生します。

住所録入力フォームを作成した時に、この入力モードを設定していなかった為にこんなトラブルに見舞われました。
半角英数字に指定していなかった為に・・・

  1. 郵便番号を入力すると自動的に都道府県・市町村が反映されるはずだったのにエラーになってしまった。
  2. 顧客番号を作り番号管理を行っていたが、検索不能になった。

これはいずれも半角英数を想定していたのですが、入力するスタッフにより全角で入力する方がいて、並び替えや検索ができないトラブルにより必要性を理解した為です。

設定方法は意外と簡単で、テキストボックスのプロパティウィンドウで設定後は上記のようなトラブルが全く発生しないようになりました。

なぜなら、どのスタッフが入力しても自動的に半角英数になり、全角で入力できなくなっているからです。

では、テキストボックスの文字入力設定方法をご紹介いたします。

IMEModeを指定する

  1. エクセルVBAのユーザーフォームに配置した、文字の種類を指定したいテキストボックスをクリックするとコントロールプロパティがテキストボックスのプロパティに変わります。
  2. 左下のプロパティウィンドウの【IMEMode】の右側にある下矢印をクリックします。
  3. 設定したい文字の種類「0」~「8」を選ぶだけです。(Excel2007)
テキストボックスIMEMode
テキストボックスIMEMode

設定できる文字の種類は下記のとおりです

IMEMode文字の種類
0-fmIMEModeNoControl指定なし(初期設定)
1-fmIMEModeOnオン
2-fmIMEModeOffオフ(英語モード)
3-fmIMEModeDisableオフ(無効・操作できない)
4-fmIMEModeHiraganaひらがな
5-fmIMEModeKatakana全角カタカナ
6-fmIMEModeKatakanaHalf半角カタカナ
7-fmIMEModeAlphaFull全角英数字
8-fmIMEModeAlpha半角英数字