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