• ベストアンサー

VBAを使って開発しているのですが

VBAを使って開発しているのですが、 テキストボックスにバイト数で制限はかけられないのでしょうか? MaxLength を指定しているのですが、 5と指定しても、全角でも半角でも5文字入力出来てしまいます。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.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 が不要なら、取り去ってください。

junction_7_7
質問者

お礼

回答ありがとうございます。 Wendy02さんの通りで、無事解決しました。 感謝です。

その他の回答 (1)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

このような感じ。 Private Sub TextBox1_Change() If LenB(TextBox1) > 5 Then MsgBox "オーバー" End If End Sub

junction_7_7
質問者

お礼

回答ありがとうございます メッセージではなく、5文字以上入力出来ないようにしたいのですが。 LenBで判断してLeftBで処理した場合に、5バイト目だった全角の文字が、 文字化けして表示されてしまっていました。

関連するQ&A