文字列の長さを得る
                                                         玄関へお回り下さい。
文字列全体の文字数を得る
   構文
  対象となる文字列の文字数=Len("対象となる文字列")


  logValue = Len("ABCEF")    logValue には[5]が入る
  logValue = Len("AB琵琶湖")  logValue には[5]が入る

  このように全角・半角に関わらず文字数がカウントされる。

文字列全体のバイト数を得る
     構文
  対象となる文字列のバイト数=Len("対象となる文字列")


  logValue = LenB("ABCEF")     ’logValue には[10]が入る
  logValue = LenB("AB琵琶湖")   logValue には[10]が入る

  このように全角・半角に関わらずバイト(文字数×2)がカウントされる。

ANSI(旧Basic・シフトJIS)流文字列長を得る          (028)
      
Private Sub Command1_Click()
'ANSI流文字列長を得る
   
Dim lngValue1 As Long
   
Dim lngValue2 As Long
    Text1.Text = "AB琵琶湖"
    Text2.Text = "ABCDE"
   
'vbFromUnicode(128)    文字列を Unicode からシステムの既定の
   
'コードページに変換します。
   
'StrConv関数でvbFromUnicodeに変換しそれをバイト数(LenB)で取得
    lngValue1 = LenB(StrConv(Text1.Text, vbFromUnicode))
    lngValue2 = LenB(StrConv(Text2.Text, vbFromUnicode))
    Label1.Caption = "Text1 の文字列長は= " & lngValue1 & " です。"
    Label2.Caption = "Text2 の文字列長は= " & lngValue2 & " です。"

End Sub

  lngValue1 = 8  lngValue2 = 5 が入る

  このように全角=2 半角=1 がカウントされる
※ 半角・全角が混在している場合の文字列の実長さ(寸法)等を取得する場合便利

参考
       Private Function fLenA(ByVal Mystring As String) As Long
'ANSI流文字列長を得るを関数化すると
    fLenA = LenB(StrConv(Mystring, vbFromUnicode))
End Function

   
'関数化した場合の使用例
   
lngValue1 = fLenA(Text1.Text)




01/12/31