エクセルバージョン
マイクロソフト365
本日は文字数や変数の型のサイズを取得してくれる、Len関数に関して解説していきたいと思います。
VBAのLenで変数を使用する場合は超注意が必要です(*゚▽゚)ノ
それではいってみましょう!
Menu
Len関数
文字列の文字数、または変数の格納に必要なバイト数を含む長整数型 (Long) を返します。
構文
文字数 → Len(文字列)
変数の型(バイト数) → Len(変数)
引数
文字数を取得する場合
文字数 | 必須/省略可 | 詳細 |
文字または変数 | 必須 | 文字または、変数を指定。 |
変数の型(バイト数) を取得する場合
変数の型サイズ | 必須/省略可 | 詳細 |
変数 | 必須 | 変数を指定。 |
※Variant型を指定した場合、Lenの使用時はString型として認識します。
サンプル
文字数
文字をダブルクオーテーションで囲って文字数を取得。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | Sub LenTest() '文字をダブルクォーテーションで囲って指定。 Debug.Print Len("") '0 Debug.Print Len("aaaaaa") '6 Debug.Print Len("AAA") '3 Debug.Print Len("あいうえお") '5 Debug.Print Len("12345") '5 Debug.Print Len(Null) 'Null '変数のデータ型にString型指定で文字数を取得。 Dim myStr As String myStr = 11111 Debug.Print Len(myStr) '5 '変数のデータ型にVariant型指定で文字数を取得。 Dim myVariant As Variant myVariant = 11111 Debug.Print Len(myVariant) '5 '変数のデータ型にString型,Variant型以外の型を指定すると型のサイズを取得。 Dim myInt As Integer myInt = 11111 Debug.Print Len(myInt) '2 End Sub |
※変数を使用する場合はデータ型をStringまたはVariantにすることで文字数が取得できます。
それ以外のデータ型を使用すると型のサイズが返るので注意しましょう(*゚▽゚)ノ
変数の型のサイズ
変数にStringやVariant以外の型を指定すると、型のバイト数が取得できます(*゚▽゚*)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | Option Explicit 'Typeステートメント(ユーザー定義型変数) Type varName Byte As Byte Integer As Integer Long As Long Boolean As Boolean Single As Single Double As Double Currency As Currency Date As Date End Type Sub Len_Sample() Dim var As varName '①型のサイズ Debug.Print Len(var.Byte) '1 Debug.Print Len(var.Integer) '2 Debug.Print Len(var.Boolean) '2 Debug.Print Len(var.Long) '4 Debug.Print Len(var.Single) '4 Debug.Print Len(var.Double) '8 Debug.Print Len(var.Currency) '8 Debug.Print Len(var.Date) '8 '②Typeの合計サイズ Debug.Print Len(var) '37 End Sub |
まとめ
型のサイズなんて知りたい人はごく稀だと思います…
特別な使用をしない限りは文字数を取得したいと思される方が大半だと思います。
ですのでもし変数を使用して文字数を取得する際は、必ずデータ型をString型かVariant型を指定しないと意図しない結果になりますのでご注意ください!
関数のLENは非常にシンプルで簡単です。
以上です。
文字を抜き出す(左と右)
【VBA】 文字の左や右から文字を抜く(Left,Right)
文字を抜き出す(指定位置から指定文字数)
【関数】指定位置から指定文字数を抜き出す(MID,MIDB)
文字の位置を取得
【関数】指定した文字の位置を文字列から検索(FIND,FINDB)
【関数】文字の位置番号を取得(SEARCH,SEARCHB)
文字数を取得
文字を置換する
【関数】指定位置から何文字や何バイト指定して置換(REPLACEとREPLACEB)
【VBA】配列の文字列を置換(先頭,末尾,全て)Replace