入力自体を制御する
Private strOldText As String
Private Sub テキスト0_Change()
'入力可能な最大文字数の制御
If 5 < Len(テキスト0.Text) Then
テキスト0.Text = strOldText
End If
strOldText = テキスト0.Text
End Sub
入力自体を制御する(OLD)
- クリップボードからペーストした場合、フィールドサイズ内であればペーストされますが、フィールドサイズを超えているとペーストされません。
- IME 入力の場合も同様です。
- コードからフィールドサイズを超えた文字列を設定すると、操作不能になります(テキストを全選択して、削除すると元に戻せます)。
キー入力時に変更前のテキストとカーソル位置を退避する
Private strText As String Private intSelStart As String
Private Sub テキスト0_KeyPress(KeyAscii As Integer)
'IME から入力した場合は、既に Text が変更済みのため、退避しない
If Not Len(テキスト0.Text) > 5 Then
strText = テキスト0.Text
intSelStart = テキスト0.SelStart
End If
End Sub
変更時にテキストの最大文字数を超えていたら、テキストとカーソル位置を戻す
Private Sub テキスト0_Change()
If Len(テキスト0.Text) > 5 Then
テキスト0.Text = strText
テキスト0.SelStart = intSelStart
End If
End Sub