フォーム上のテキストボックスでの入力文字は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
|