【コピペで即解決】VBAで文字数を正確にカウント!Len関数とLenB関数の使い分けとエラー回避のコツ

【業務効率化】VBA
スポンサーリンク

「あー、またエラーだ……。システムへのデータ取り込み、文字数制限で弾かれちゃった。全角と半角が混ざっているから、目視で数えるなんて無理だよ……!」

バックオフィスで膨大なデータを扱っていると、一度はこんな悩みに直面したことがあるのではないでしょうか?

こんにちは!ぐーです。
私も新人時代、古いシステムの「全角20文字(半角40文字)以内」というルールに苦しめられ、数千件のデータを3時間かけて目視チェックした苦い経験があります。

しかし、VBAの「Len関数」と「LenB関数」を正しく使えば、あの膨大な作業もボタン一つ、わずか1秒で完了します。

今回は、ITに苦手意識がある方でもサクッと使えるように、この2つの関数の違いと、現場で本当に使えるテクニックをわかりやすく解説していきます。

【業務効率化】VBAの記事を見る

文字の「数」を数えるか、「重さ」を量るか

想像してみてください。たとえば、小学生のテストに出てくる「リンゴ」と「Apple」。

文字の「数」だけに注目すれば、それぞれ「3文字」と「5文字」です。
このように、見たままの文字数をシンプルに数えるのが「Len(レン)関数」の役割になります。

一方、システムの世界には文字の「重さ(データ量・バイト数)」という概念があります。
イメージとして、半角文字は「1kg」、全角文字は「2kg」の重さがあると捉えてみてください。

この「文字の重さ」を正確に量る体重計のような存在が、「LenB(レンビー)関数」なのです。 

実務におけるシステムエラーの多くは、この「重さ(バイト数)」の制限を超えてしまった時に発生します。

【要注意】実務でハマりやすい「VBA独自の罠」と解決策

ここで、実務でよく遭遇する落とし穴についてお話しします。 

実はVBAの内部処理においては、半角・全角を問わず、すべての文字を一律「2kg(2バイト)」として扱ってしまう特殊なルールがあります。

これでは、「半角は1kgとして計算したい」という多くの業務システムのルールと食い違ってしまいます。

そこで、現場で重宝されている「正しい重さを量るためのテクニック」を、コピペで使えるコードとともにご紹介します。

コピペで使える!文字数・バイト数判定サンプルコード

StrConv(文字列, vbFromUnicode) という命令を組み合わせることで、VBA独自のルールを一般的なルールに変換し、正確な重さを量ることができるようになります。

Sub CheckTextLength()
    ' 文字列を入れる箱(変数)を用意します
    Dim myText As String
   
    ' テスト用の文字を入れます(半角カタカナ3文字+全角カタカナ2文字)
    myText = "アイウエオ"
   
    ' ①Len関数:見たままの文字数を数える(結果は「5」)
    MsgBox "文字数は " & Len(myText) & " 文字です。"
   
    ' ②LenB関数+裏技:全角=2、半角=1として重さを量る(結果は3+4=「7」)
    ' ※StrConvを使って、VBA独自のルールから一般的なルール(Shift-JIS)に変換してから量ります
    MsgBox "バイト数は " & LenB(StrConv(myText, vbFromUnicode)) & " バイトです。"
   
End Sub

最後に

いかがでしたでしょうか。 

「Lenは数を数える」「LenBは重さを量る」

 この基本さえ押さえておけば、文字数エラーに怯える必要はもうありません。作業時間をグッと短縮して、心に余裕を持って仕事をしていきましょう。

【業務効率化】VBAの記事を見る


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でも、年間100万円以上の節約・資産管理・スキルアップで新NISAで年間360万円投資し、iDeCoもフル活用しています。日商簿記3級持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、稼ぐ力を高めるITスキルについて発信しています。

生活を豊かにしたくて、高配当株投資で年間配当金60万円をめざしています。現在は年間配当金25万円以上達成!

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

タイトルとURLをコピーしました