Len、LenB関数

Len, LenB 関数には指定可能な引数が2つあり、いずれか1つだけを指定します。
文字列を指定すると、その文字列の文字数を長整数型 (Long) の値で返します。
変数を指定すると、その変数に必要なバイト数を同じく長整数型で返します。

スポンサーリンク

Len、LenB関数の使用方法

構文
Len(String | Varname)
LenB(String | Varname)

【戻り値】 長整数型 (Long)
引数名 省略 説明
※いずれか1つを必ず指定
String 任意の文字列式を指定します。
Varname 任意の変数の名前を指定します。

VBAの内部処理では文字列をUnicodeで扱っています。したがって、LenB 関数によりバイト数を単純に取得すると半角・全角にかかわらず1文字2バイトとして返ってきます。もし、半角1バイト、全角2バイトを返してほしい場合は、文字コードをShift_JISに変換した後に LenB 関数を使用してください。
使用例2参照

使用例

Len関数の使用例

Len 関数により、文字列の文字数と変数のバイト数を取得する例です。

Sub sample_ef023_01()
    Dim wStr    As String
    Dim wInt    As Integer
    Dim wLng    As Long

    wStr = "aあA亜ア"

    Debug.Print Len(wStr)       '文字列の文字数
    Debug.Print Len(wInt)       'Integer型のバイト数
    Debug.Print Len(wLng)       'Long型のバイト数
    Debug.Print Len(vbCrLf)     '組み込み定数の文字数
End Sub

LenB関数の使用例1

LenB 関数により文字列のバイト数を取得する例です。前述の注意書きにも記載したとおり、文字列をUnicodeとして扱いますので、1文字2バイトとしてカウントされます。

Sub sample_ef023_02()
    Dim wStr    As String

    wStr = "aあA亜ア"

    Debug.Print LenB(wStr)       'バイト数(Unicode)
End Sub

LenB関数の使用例2

LenB 関数により半角を1バイト、全角を2バイトとしてカウントする例です。文字コードをShift-Jis変換する必要があるので、このマクロはWindows機で実行する必要があります。

Sub sample_ef023_03()
'### このマクロはWindows機で実行してください。###

    Dim wStr    As String
    Dim wStrC   As String

    wStr = "aあA亜ア"

    'Unicode ⇒ システム既定文字コード(Shift_JIS)へ変換
    wStrC = StrConv(wStr, vbFromUnicode)

    Debug.Print LenB(wStrC)     'バイト数(Shift_JIS)
End Sub

 StrConv関数

タイトルとURLをコピーしました