Len関数・LenB関数で文字列の文字数を調べる

vbaleneyecatch

文字列操作関連のLen関数、LenB関数は文字列の文字数を返す関数です。
文字列加工のVBAのコード作成時には、多頻度で必要になる関数です。

こんにちは、じゅんぱ店長(@junpa33)です。

今回は、文字列操作に必須のVBA関数の「Len関数」「LenB関数」の使い方についてです。

テキストデータの一部を取り出して別データとして利用したい場合などに必要になります。

Len関数で文字列の文字数を知る方法

vbalenp009

Len関数の構文

構文(記述方法)

Len(文字列式または変数)

Len関数は文字列の文字数を調べる(返す)関数ですので、基本、調べる対象のデータ型は文字列型(String型)になります。

変数がVariant型の場合は、その変数を文字列型として処理します。

Len関数の使用例

①例えば文字列式「東京都新宿区」を考えます。

Len(”東京都新宿区”)という記述になります。

VBA
Option Explicit

Sub Len関数test1()
        MsgBox Len("東京都新宿区")
End Sub

メッセージボックスで(文字数)6を返します。

vbalen002

②文字列式として「13579」を考えます。

Len(”135791”)という記述になります。

VBA
Sub Len関数test2()
        MsgBox Len("135791")
End Sub

メッセージボックスで(文字数)6を返します。

vbalen004

③数値として135791を考えます。

Lenの構文に直接数値をセット「Len(135791)」するとエラーストップします。

そこで変数を利用していきます。

VBA
Sub Len関数test3()
    Dim A As Long
        A = 135791
        MsgBox Len(A)
End Sub

メッセージボックスで 4 を返します。

この数値は、文字数(桁数)とは全く無縁の数値です。(これは変数の長整数型の固有値です。)

vbalen006

④では、数値の桁数を調べるにはどうしたらいい?

Len関数を使うには、変数のデータ型が文字列型でないといけませんが、

計算を伴う数値型の変数の桁数を調べる必要がある時、どうしたらいいでしょうか。

数値型の変数を使って正確に桁数を調べる方法はこれです。

一時的に、強制的に数値データを文字列データに変換する「CStr関数」を利用します。

VBA
Sub Len関数test4()
    Dim A, B, C As Long
        A = 135791
        B = 24680
        C = A + B
        MsgBox "C= " & C & " : Len(CStr(C))= " & Len(CStr(C))
End Sub

このように、数値型変数の計算結果とその桁数が表示されました。

vbalen008

参考記事

  • CStr関数については、こちらの記事が参考になります。
vbastrcstreyecatch Str関数とCStr関数 データ型変換の知るべき違いと使い方
  • MsgBoxの使い方について詳しくはこちらです。
vbamsgboxeyecatch メッセージボックス MsgBox実際の使い方を最速に理解

LenB関数で文字列のバイト数を知る

vbalenp010

Len関数は文字列の長さを文字数で返し、LenB関数は文字列の長さをバイト数で返します。

Len(”東京都新宿区”)は文字数で6を返します。

LenB(”東京都新宿区”)はバイト数で12を返します。

構文など使い方については、Len関数と同じです。

Len関数の説明を参考にしてください。

VBA
Sub Len関数test5()
        MsgBox LenB("東京都新宿区")
End Sub
VBA
Sub Len関数test6()
        MsgBox LenB("135791")
End Sub
VBA
Sub Len関数test7()
    Dim A, B, C As Long
        A = 135791
        B = 24680
        C = A + B
        MsgBox "C= " & C & " : LenB(CStr(C))= " & LenB(CStr(C))
End Sub

Len関数で文字列の文字数を知る方法のまとめ

vbalenp011

エクセルVBAでプログラミングを行う時に、テキストデータを加工処理しないといけないことがよくあります。

また数値データを「前から〇〇桁」や「後ろから〇〇桁」切り取るなんてこともあると思います。

そんな時に、ほぼ間違いなく必要になるものの一つは、はこの「Len関数」になります。

難しくなく簡単に使える関数ですので、是非覚えておきましょう。

エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。

vbastudyeyecatch2 エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です

今回の記事はここまでです。   最後までご覧いただき有難うございました。

エクセルVBA最速理解で必要な知識を集めよう!

エクセルVBA業務ツールで日常の業務改善を行いましょう。

<記事内容についての告知>VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。