戯れ言葉

MS Access:入力文字数を制限する(半角:1,全角:2で)

カテゴリ:MSAccess 備忘録
タグ:

テキストボックスに入力された文字数を半角=1Byte,全角=2Byte と計算して指定Byte数を超えた文字列を削除する。


関数として定義。

Function LimitedString(inString As String, LenMax As Byte) As String

'
'
'  テキストボックスに入力された文字列の,文字数を制限する。
'  全角文字を2,半角文字を1と計算する。
'  全角文字の 2byte 中最後の 1byte が、文字数制限を超えたときは,
'  最後の全角文字を削除する。
' 引数)
'  InString : 入力済み文字列
'  LenMax   : 制限するByte数
'
' 返り値)
'  制限数で後ろが切り取られた文字列
'
'


    Dim WorkStringUni As String
    Dim WorkStringSys As String
   
    WorkStringUni = inString
       
    If LenB(StrConv(WorkStringUni, vbFromUnicode)) > LenMax Then
        WorkStringSys = StrConv(WorkStringUni, vbFromUnicode)
        WorkStringSys = LeftB(WorkStringSys, LenMax + 1)
        WorkStringUni = StrConv(WorkStringSys, vbUnicode)
        WorkStringUni = Left(WorkStringUni, (Len(WorkStringUni) - 1))
    End If
   
    LimitedString = WorkStringUni
   
End Function


呼出しは

  MaxTxtBytes = 40
  If TxtString <> "" Then
      TxtString = LimitedString(TxtString, MaxTxtBytes)
  End If

で、文字列のNull チェックをして呼び出す。

 レポートがらみのテキストボックスへの入力で、半角全角文字の混在で使用したい時、決められた横幅一杯に半角文字を入れたい時、フォームの入力段階(更新後処理イベント)で使用する。
 どこかのサイトで紹介されていたものが、旨く処理できなかったので改良したもの。つまり、あらかたパクリ。
 どこかのサイト様、ごめんなさい。
 どこのサイトだったか・・・・?

Comments 0

There are no comments yet.

Leave a reply
コメントをどうぞ

ブログやホームページのURLをどうぞ

パスワードを入力すると投稿後、訂正・削除が出来ます