ExcelVBA(マクロ)で文字の長さ、バイト数を求める方法/Len、LenB関数の使い方

calculator IT

ワークシート関数同様、VBAで文字数を求める場合もLen関数を用います。

Advertisements

Len関数の使い方

文字数を求める
Len(文字列)
len1
これの文字数を求めてみます。
len2
Lenの引数に文字列のあるA1セルを指定し、これをメッセージボックスで表示します。
len3
結果、このようになります。

Len関数で繰り返し

len4
Len関数は数値を返すので、変数に格納する場合はInteger、Longなどの数値型の変数で指定します。
最近の高性能なパソコンでは指定しない(as以降を書かない)でもあまり問題ないんですが、一応そのほうが処理が軽くなりますし、書いたほうが可読性という意味ではわかりやすいです。
len5
というわけで、一行目から百行目まで、A1セルの文字数を数えてA2セルに表示するプログラムです。
Cellsは行,列でセル番号を指定する命令です。コードは下記となります。
' vba
Dim 文字数 As Integer
Dim i As Integer
For i = 1 To 100
文字数 = Len(Cells(i, 1))
Cells(i, 2).Value = 文字数
Next
len6
実行結果はこのようになります。A列に文字がない場合は数字を表示したくない場合は、A列に文字があるかどうかをIf文で判別するなどすることで対応できます。

LenB関数(バイト数)の使い方

文字列のバイト数を求める
LenB(文字列)
len7
さきほどのコードのLenをLenBに変更してみます。
LenB関数では文字数の代わりに、文字列のバイト数を求めることができます。ざっくり半角で1バイト、大文字で2バイトです。
len8
その場合、実行結果はこうなります。
やりたいことから方法を探すエクセルExcel操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。

コメント