Len 関数

文字列の文字数、または変数の格納に必要なバイト数を含む長整数型 (Long) を返します。

構文

Len(stringvarname | )

Len 関数の構文には、次の指定項目があります。

パーツ 説明
string 任意の有効な文字列式を指定します。 stringNull が含まれている場合は、Null が返されます。
varname 有効な変数の名前を指定します。 varnameNull が含まれている場合は、Null を返します。 varnameバリアント型 (Variant) であれば、Len はこれを 文字列型 (String) として処理し、常にその文字数を返します。

解説

使用可能な 2 つの引数の 1 つだけを指定する必要があります。 ユーザー定義型を使用すると、Len 関数は、ファイルに書き込まれるデータのサイズを返します。

注意

2 バイト文字セット (DBCS) 言語のように、LenB 関数で文字列に含まれるバイト データを使用します。 LenB 関数は、文字列の文字数ではなく、その文字列を表すバイト数を返します。 ユーザー定義型を使用すると、LenB 関数は、要素間の間隔を含むメモリ内のサイズを返します。 LenB 関数を使用するサンプル コードについては、トピックの 2 番目の例を参照してください。

注意

Len 関数は、ユーザー定義型の データ型に可変長文字列が指定されると、必要な領域の実際のバイト数を判断できない場合があります。

1 番目の例では、Len 関数を使用して、文字列の文字数または変数の格納に必要なバイト数を返します。 を定義する CustomerRecord ブロックをクラス モジュールに記述する場合は、その前にキーワード Private を指定する必要があります。 標準モジュールでは、Type ステートメントを Public にすることができます。

Type CustomerRecord    ' Define user-defined type.
    ID As Integer    ' Place this definition in a 
    Name As String * 10    ' standard module.
    Address As String * 30
End Type

Dim Customer As CustomerRecord    ' Declare variables.
Dim MyInt As Integer, MyCur As Currency
Dim MyString, MyLen
MyString = "Hello World"    ' Initialize variable.
MyLen = Len(MyInt)    ' Returns 2.
MyLen = Len(Customer)    ' Returns 42.
MyLen = Len(MyString)    ' Returns 11.
MyLen = Len(MyCur)    ' Returns 8.

2 番目の例では、文字列の表示に ANSI が使用されている場合、LenB 関数とユーザー定義関数 (LenMbcs) を使用して、文字列のバイト数を返します。

Function LenMbcs (ByVal str as String)
    LenMbcs = LenB(StrConv(str, vbFromUnicode))
End Function

Dim MyString, MyLen
MyString = "ABc"
' Where "A" and "B" are DBCS and "c" is SBCS.
MyLen = Len(MyString)
' Returns 3 - 3 characters in the string.
MyLen = LenB(MyString)
' Returns 6 - 6 bytes used for Unicode.
MyLen = LenMbcs(MyString)
' Returns 5 - 5 bytes used for ANSI.

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。