HOME > 即効テクニック > Excel VBA > その他関連のテクニック > 入力文字を限定する - KeyPressイベントの利用

即効テクニック

その他関連のテクニック

入力文字を限定する - KeyPressイベントの利用

(Excel 97/2000)
フォーム上のテキストボックスでの入力文字はIMEmodeプロパティーをプロパティーウィンドウまたはコードから設定することによりある程度可能ですが、それに対応できない場合などはキープレスイベントで受け取ったアスキーコードを判断して文字変換後、値をテキストボックスに表示するという処理を行います。
ここでは、IMEモードを直接入力モードにした際、半角大文字にそろえるケースを考えます。下記に提示したサンプルでは、受け取ったキーコードをCAPS LOCKの状態に関係なく、大文字に変換します。

サンプルの実行にはテキストボックスのKeyPressイベントに下記コードを記述し、テキスト入力してみてください。
'-----テキストボックスのキープレスイベント----

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

Select Case KeyAscii

    Case Asc("a") To Asc("z") 'Asc関数で指定文字を変換して分岐処理
    '半角小文字が入力された場合にはStrconv関数で大文字に変換
        KeyAscii = Asc(StrConv(Chr(KeyAscii), vbUpperCase))

    Case Else    '半角小文字以外は何もしない

End Select

End Sub