Excel VBA のLen/LenB関数で、文字列の長さを取得するサンプルです。
目次
文字列 | 文字列の長さを取得する(Len) |
文字列のバイト数を取得する(LenB) |
文字列の長さを取得する(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
3行目は、半角文字です。
8行目は、全角文字です。
文字列のバイト数を取得する(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
Dim c As String
c = "abcあい"
Debug.Print LenB(c) '10
Debug.Print LenB(StrConv(a, vbFromUnicode)) '5
Debug.Print LenB(StrConv(c, vbFromUnicode)) '7
End Sub
3行目は、半角文字ですが5行目は10が表示されます。
8行目は、全角文字です。10行目は10と表示されます。
13行目は、半角文字と全角文字があります。15行目は10と表示されます。
17,18行目のように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
関連の記事
Excel VBA 文字列の位置を取得する(InStr/InStrRev)
Excel VBA 文字列を切り出す(Left/Mid/Right)
Excel VBA 大文字と小文字を変換(UCase/LCase)