Len 関数Len function

文字列の文字数、または変数の格納に必要なバイト数を含む長整数型 (Long) を返します。Returns a Long containing the number of characters in a string or the number of bytes required to store a variable.


Len(文字列 | varname)Len(string | varname)

Len 関数の構文には、次の指定項目があります。The Len function syntax has these parts:

パーツPart 説明Description
stringstring 任意の有効な文字列式を指定します。Any valid string expression. stringNull が含まれている場合は、Null が返されます。If string contains Null, Null is returned.
varnamevarname 有効な変数の名前を指定します。Any valid variable name. varnameNull が含まれている場合は、Null を返します。If varname contains Null, Null is returned. varnameバリアント型 (Variant) であれば、Len はこれを文字列型 (String) として処理し、常にその文字数を返します。If varname is a Variant, Len treats it the same as a String and always returns the number of characters it contains.


使用可能な 2 つの引数の 1 つだけを指定する必要があります。One (and only one) of the two possible arguments must be specified. ユーザー定義型を使用すると、Len 関数は、ファイルに書き込まれるデータのサイズを返します。With user-defined types, Len returns the size as it will be written to the file.


2 バイト文字セット (DBCS) 言語のように、LenB 関数で文字列に含まれるバイト データを使用します。Use the LenB function with byte data contained in a string, as in double-byte character set (DBCS) languages. LenB 関数は、文字列の文字数ではなく、その文字列を表すバイト数を返します。Instead of returning the number of characters in a string, LenB returns the number of bytes used to represent that string. ユーザー定義型を使用すると、LenB 関数は、要素間の間隔を含むメモリ内のサイズを返します。With user-defined types, LenB returns the in-memory size, including any padding between elements. LenB 関数を使用するサンプル コードについては、トピックの 2 番目の例を参照してください。For sample code that uses LenB, see the second example in the example topic.


Len 関数は、ユーザー定義型のデータ型に可変長文字列が指定されると、必要な領域の実際のバイト数を判断できない場合があります。Len may not be able to determine the actual number of storage bytes required when used with variable-length strings in user-defined data types.


1 番目の例では、Len 関数を使用して、文字列の文字数または変数の格納に必要なバイト数を返します。The first example uses Len to return the number of characters in a string or the number of bytes required to store a variable. **** を定義する CustomerRecord ブロックをクラス モジュールに記述する場合は、その前にキーワード Private を指定する必要があります。The Type...End Type block defining CustomerRecord must be preceded by the keyword Private if it appears in a class module. 標準モジュールでは、Type ステートメントを Public にすることができます。In a standard module, a Type statement can be 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) を使用して、文字列のバイト数を返します。The second example uses LenB and a user-defined function (LenMbcs) to return the number of byte characters in a string if ANSI is used to represent the string.

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.

関連項目See also

サポートとフィードバックSupport and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.