【ExcelVBA・マクロ】Len関数の使い方|文字数を取得する方法【コピペOK】

Len関数の使い方 ExcelVBA

VBAで文字列を扱っていると、次のようなことはありませんか?

  • 文字数を取得したい
  • 入力チェックをしたい
  • 文字列の長さに応じて処理を分けたい

このような場合は、Len関数を使うことで解決できます。
文字列の長さ(文字数)を取得できる、VBAで非常に基本かつ重要な関数です。

この記事では、Len関数の基本から実務で使える活用方法まで分かりやすく解説します。


スポンサーリンク
スポンサーリンク

この記事でできること

  • 文字数を取得できる
  • 入力チェックができる
  • 文字列処理の幅が広がる

基本:Len関数の使い方

基本構文はこちらです。

Len(文字列)

例:

MsgBox Len("ABCDE")

→ 5


Len関数の特徴

  • 文字列の文字数を取得
  • 全角・半角どちらも1文字としてカウント

基本例

Dim str As String

str = "ExcelVBA"

MsgBox Len(str)

→ 8


セルの文字数を取得する

Range("B1").Value = Len(Range("A1").Value)

A1の文字数をB1に表示します。


入力チェックで使う(重要)

文字数制限のチェックに使えます。

Dim val As String

val = InputBox("10文字以内で入力してください")

If Len(val) > 10 Then
    MsgBox "文字数が多すぎます", vbExclamation
End If

空チェックに使う

If Len(Range("A1").Value) = 0 Then
    MsgBox "未入力です"
End If

空文字チェックとしても使えます。


Leftと組み合わせる

文字列の一部取得に便利です。

Dim str As String

str = "ABCDE"

MsgBox Left(str, Len(str) - 2)

→ ABC


数値に対するLen

数値も文字列として扱われます。

MsgBox Len(12345)

→ 5


実務での活用例

  • 入力文字数チェック
  • データ検証
  • 文字列の分割処理
  • 空データ判定

入力制御では必須の関数です。


注意点

① Nullに注意

Len(Null)

→ エラーになります。

② 空白もカウントされる

Len("A B")  ' → 3

スペースも1文字として扱われます。


安全な書き方(おすすめ)

Dim val As Variant

val = Range("A1").Value

If Not IsNull(val) Then
    MsgBox Len(val)
End If

よくあるエラーと対処法

① 型が一致しません

Null値の可能性があります。

② 思った文字数にならない

スペースや改行が含まれている可能性があります。

③ コードは正しいのにエラーになる

コピー時に全角文字や特殊文字が混ざることがあります。
その場合は該当行を手入力し直すと解決することがあります。


まとめ

  • Lenは文字数を取得する関数
  • 入力チェックやデータ検証で必須
  • 空チェックにも使える
  • 文字列処理の基本関数

Len関数を使いこなせるようになると、入力制御や文字列処理がより正確になります。
VBAでは非常に使用頻度が高いので、ぜひマスターしておきましょう。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

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