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では非常に使用頻度が高いので、ぜひマスターしておきましょう。


コメント