【Excel VBA】文字列の長さを調べる関数(Len)

当ページのリンクには広告が含まれている可能性があります。
文字列の長さを調べる

こんにちは、ユーキです。

今回は、VBAで文字列の長さを調べる関数(Len)を紹介します。

目次

文字列の長さを調べる

文字列の長さを調べるには、Len関数を使用します。

Len関数の使い方

使い方は簡単です。調べたい文字列を引数に指定するだけになります。

Dim num As Integer
num = Len("Hello世界!")
Debug.Print num ’8が出力されます

アルファベットも記号も漢字も1文字を1とカウントします。「Hello世界!」だと8文字となるので、戻り値は8が返ります。

バイト数で数える(LenB関数)

文字数ではなく、バイト数をカウントしたい場合は、LenB関数を使用します、と言いたいところなのですが、日本語の場合、このままでは使えません。

Dim num As Integer
num = LenB("Hello世界!")
Debug.Print num ’16が出力されます

上記の場合、16が出力されます。日本語の場合、1文字2バイトをみなされてしまうようです。

Microsoftサポートにその記述がありました。

LEN 関数、LENB 関数

では、バイト数を求めたい場合はどのように書いたらよいでしょうか?

Dim num As Integer
num = LenB(StrConv("Hello世界!", vbFromUnicode))
Debug.Print num ’11が出力されます

上記のように、StrConv関数を使用して、文字列を Unicode からシステムの既定のコード ページに変換してします。こうすることで、正しくバイト数が求めらるようです。これで、正しく11が求められるようになりました。…昔はこうじゃなかった気がするけれど…勘違いかもしれません。何事も確認が大事ですね。

まとめ

今回は、文字列の長さを調べる関数(Len)を紹介しました。

Point
  • 文字数の取得はLen関数を使用する
  • 文字列のバイト数を取得したい場合は、StrConv+LenB関数を使用する

少しでもお役に立てば、幸いです。

スポンサーリンク
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

旅好き職業プログラマ。文系大学卒業後、ITソフトウエア開発会社に勤務してプログラミング言語を学ぶ。現在は転職し、プロジェクトマネージャ的ポジションで生産管理システムの開発にあたる。
得意言語は、VB、VB.NET、C#.NET、Java、SQLなど。

目次