VBA Len/LenB 文字列の長さを取得する

VBAの文字列の長さを取得するサンプルです。Excel、Accessとも同じです。

目次

文字列 文字列の長さを取得する(Len)
  文字列のバイト数を取得する(LenB)
  文字列のバイト数を取得する(LenB+StrConv)

文字列の長さを取得する(Len)

Len(文字列)
  • Len関数は、文字列の長さを取得します。
  • 半角文字、全角文字に関わらず1文字は、1として数えます。
Sub test1()
    Dim a As String
    a = "abcde"

    Debug.Print Len(a) '5
    
    Dim b As String
    b = "あいうえお"

    Debug.Print Len(b) '5
End Sub

5行目は半角、10行目は全角です。

文字列のバイト数を取得する(LenB)

LenB(文字列)
  • LenB関数は、文字列のバイト数を取得します。
  • 1文字の全角文字は2バイトとして数えます。
  • 1文字の半角文字も2バイトになるので注意が必要です。
Sub test1()
    Dim a As String
    a = "abcde"

    Debug.Print LenB(a) '10 (注意)
    
    Dim b As String
    b = "あいうえお"

    Debug.Print LenB(b) '10
End Sub

5行目は、半角文字ですが10と表示されます。

文字列のバイト数を取得する(LenB+StrConv)

Sub test1()
    Dim a As String
    a = "abcde"

    Debug.Print LenB(StrConv(a, vbFromUnicode)) '5
    
    Dim b As String
    b = "あいうえお"
    
    Debug.Print LenB(StrConv(b, vbFromUnicode)) '10
End Sub

5行目のようにStrConv関数で変換すると半角は1バイトで数えます。
vbFromUnicodeは、文字列をUnicodeからシステム既定のものに変換します。(Macintoshは使用不可)。
以下は、MicrosoftのStrConv関数のリンクです。
https://support.microsoft.com/ja-jp/office/strconv-%E9%96%A2%E6%95%B0-19c3816f-dbc9-4adf-891c-fd32734c92e0

関連の記事

VBA 文字列を切り出す(Left/Mid/Right)
Excel VBA 文字列を切り出す(Left/Mid/Right)
VBA 大文字と小文字を変換(UCase/LCase)

△上に戻る