方法1 テキストボックスの入力規制を、マクロで実現してみました。とりあえず入力させるだけさせて、規制に引っ掛かる文字を排除しています。
'TextBox1が1バイトコード入力用です
'TextBox1が2バイトコード入力用です
Private Sub TextBox1_Change()
Dim i As Integer
Dim str As String
Dim ch As String
With TextBox1
str =
""
For i = 1 To
Len(.Text)
ch = Mid(.Text, i, 1)
If Asc(ch) >= 0 And Asc(ch) < &H100 Then
'1バイトコードの場合
str = str & ch
Else
End If
Next i
.Text = str
End With
End Sub
Private Sub TextBox2_Change()
Dim i As Integer
Dim str As String
Dim ch As String
With TextBox2
str =
""
For i = 1 To
Len(.Text)
ch = Mid(.Text, i, 1)
If Asc(ch) >= 0 And Asc(ch) < &H100 Then
Else
'2バイトコードの場合
str = str & ch
End If
Next i
.Text = str
End With
End Sub
方法2
シ−ト上にコントロ−ルを配置してとかユ−ザフォ−ムまでマクロで作成となると,イベントの処理とかの説明が私ではちょっとうまく出来ないので,あらかじめユ−ザフォ−ムがある場合の例にします。ユ−ザフォ−ムを作り,そこにテキストボックス(TextBox1とTextBox2)を2つ作ります。
標準モジュ−ルに
Sub test()
UserForm1.Show
End Sub
フォ−ムモジュ−ルに
Private Sub TextBox1_Enter()
TextBox1.IMEMode = fmIMEModeHiragana
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.IMEMode = fmIMEModeNoControl
End Sub
Private Sub TextBox2_Enter()
TextBox2.IMEMode = fmIMEModeAlpha
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox2.IMEMode = fmIMEModeNoControl
End Sub
を書きます。testを実行し,フォ−ムを表示させ,TextBox1にフォ−カスすると漢字
入力でTextBox2にフォ−カスすると英数半角に自動的にIMEが切り替わります。この
マクロは,もちろんそれ以外なにもしませんので,何の役にも立ちません。
#IMEが切り替わるだけで,なんでも入力する事はできます。これってダメ?。
|