VBA Len関数 – 文字列の長さを取得する

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 7月 11, 2022

このチュートリアルでは、Len VBA関数を使用して、文字列の長さを取得する方法を説明します。

Len関数

VBAのLen関数は、指定された文字列の長さを返します。

VBA Len : 文字数をカウントする

VBAのLen関数は、文字列内の文字を数えます。

Sub LenExample_1()

MsgBox Len("12345") '--> 5

MsgBox Len("12")    '--> 2

MsgBox Len("1")     '--> 1

MsgBox Len(" ")     '--> 1 (スペースが含まれている)

MsgBox Len("")      '--> 0

MsgBox Len("AB Cd") '--> 5

End Sub

VBA Len : 文字列とバリアント

VBA Len関数は、文字列またはバリアントとして宣言された変数の文字数をカウントすることができます。実際、VBA Lenはバリアントを文字列として扱います。もしVBA Lenが整数、long、singleまたはdoubleで使われた場合、VBA Lenはその変数を格納するために必要なバイト数を数えます。

Sub LenExample_2()

Dim VarEx1 As String
VarEx1 = 12345
MsgBox Len(VarEx1)     '--> 5
'Len は変数内の文字数をカウント

Dim VarEx2 As Variant
VarEx2 = 12345
MsgBox Len(VarEx2)     '--> 5
'Lenは変数の文字数をカウント

Dim VarEx3 As Integer
VarEx3 = 12345
MsgBox Len(VarEx3)     '--> 2
'Lenは変数の格納に使用されるバイト数をカウント

Dim VarEx4 As Long
VarEx4 = 12345
MsgBox Len(VarEx4)     '--> 2
'Lenは変数の格納に使用されるバイト数をカウント

Dim VarEx5 As Single
VarEx5 = 12345
MsgBox Len(VarEx5)     '--> 2
'Lenは変数の格納に使用されるバイト数をカウント

Dim VarEx6 As Double
VarEx6 = 12345
MsgBox Len(VarEx6)     '--> 2
'Lenは変数の格納に使用されるバイト数をカウント

End Sub

VBA Len : 文字の出現回数を数える

VBA Len関数は、VBA Replace関数と一緒に使って、文字列の中にある文字が何回現れるかを数えることができます。 VBA Replace関数は、文字列中のある部分文字列を別の部分文字列に置き換えることができます。

MsgBox Replace("XB cX", "X", "7") '--> "7B c7"

Replaceを使ってカウントしたい文字を削除し、置換前と置換後の長さの差を求めることができるのです。

Sub LenExample_3()

Dim StrEx As String '文字列変数を定義する
StrEx = "Jack,John,Jim,Jordan"

MsgBox Len(StrEx) - Len(Replace(StrEx, ",", "")) '--> 3

'上記のコードを分解する
MsgBox Len(StrEx)                   '--> 20
MsgBox Replace(StrEx, ",", "")      '--> "JackJohnJimJordan"
MsgBox Len(Replace(StrEx, ",", "")) '--> 17

MsgBox Len(StrEx) - Len(Replace(StrEx, ",", "")) '--> 20-17=3
End Sub

VBA Len 部分文字列の出現回数を数える

VBA Len関数は、VBA Replace関数と一緒に使うことで、文字列の中にある部分文字列が何回出てきたかをカウントすることができます。前回と同様、 VBA Replace関数を使います。

MsgBox Replace("XB cX", "X", "7") 'Result is:"7B c7"

同様に、Replaceを使ってカウントしたい部分文字列を削除し、置換前と置換後の長さの差を求めることができますが、最後に、その差分を置換した部分文字列の長さで割る必要があります。

Sub LenExample_4()
Dim StrEx As String '文字列変数を定義する
StrEx = "Jack, John, Jim, Jordan"
Dim SubStr As String '部分文字列用変数の定義
SubStr = ", "
'StrExの中にSubStrが何回あるか調べる

MsgBox (Len(StrEx) - Len(Replace(StrEx, SubStr, "")))/ Len(SubStr) '--> 3

'上記のコードを分解する
MsgBox Len(StrEx)                      '--> 23
MsgBox Replace(StrEx, SubStr, "")      '--> "JackJohnJimJordan"
MsgBox Len(Replace(StrEx, SubStr, "")) '--> 17

MsgBox Len(StrEx) - Len(Replace(StrEx, SubStr, "")) '--> 23-17=6
MsgBox (Len(StrEx) - Len(Replace(StrEx、SubStr、""))) / Len(SubStr)
'--> (23-17)/2=3
End Sub
vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples