- ベストアンサー
VBAを使って開発しているのですが
VBAを使って開発しているのですが、 テキストボックスにバイト数で制限はかけられないのでしょうか? MaxLength を指定しているのですが、 5と指定しても、全角でも半角でも5文字入力出来てしまいます。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
イベントは適当に、何かひとつを選べばよいと思います。 Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Dim buf As String buf = StrConv(TextBox1.Text, vbFromUnicode) If LenB(buf) > 5 Then MsgBox "5 byteを越えました。", vbCritical buf = MidB(buf, 1, 5) TextBox1.Text = StrConv(buf, vbUnicode, 1041) End If End Sub MsgBox が不要なら、取り去ってください。
その他の回答 (1)
- piroin654
- ベストアンサー率75% (692/917)
回答No.1
このような感じ。 Private Sub TextBox1_Change() If LenB(TextBox1) > 5 Then MsgBox "オーバー" End If End Sub
質問者
お礼
回答ありがとうございます メッセージではなく、5文字以上入力出来ないようにしたいのですが。 LenBで判断してLeftBで処理した場合に、5バイト目だった全角の文字が、 文字化けして表示されてしまっていました。
お礼
回答ありがとうございます。 Wendy02さんの通りで、無事解決しました。 感謝です。