【ExcelVBA・マクロ】Left関数の使い方|文字列の左側を取り出す方法【コピペOK】

Left関数の使い方 ExcelVBA

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

  • 文字列の先頭だけ取り出したい
  • コードの一部を抽出したい
  • 日付やIDを分解したい

このような場合は、Left関数を使うことで解決できます。
文字列の左側(先頭)から指定した文字数を取り出すことができる基本関数です。

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


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

この記事でできること

  • 文字列の先頭から指定文字数を取得できる
  • 文字列の分解ができる
  • 実務で使えるコードが分かる

基本:Left関数の使い方

基本構文はこちらです。

Left(文字列, 文字数)

例:

MsgBox Left("ABCDE", 2)

→ AB


Left関数の特徴

  • 左(先頭)から指定文字数を取得
  • 文字列操作の基本関数

基本例

Dim str As String

str = "ExcelVBA"

MsgBox Left(str, 5)

→ Excel


セルの値から文字を取得する

Range("B1").Value = Left(Range("A1").Value, 3)

A1の先頭3文字をB1に表示します。


日付データの分解(よく使う)

yyyymmdd形式の文字列から年を取得します。

Dim str As String

str = "20240101"

MsgBox Left(str, 4)

→ 2024


条件分岐で使う

Dim code As String

code = "A12345"

If Left(code, 1) = "A" Then
    MsgBox "Aグループです"
End If

Lenと組み合わせる

文字数に応じて処理する場合です。

Dim str As String

str = "ABCDE"

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

→ ABC


Mid・Rightとの違い

関数内容
Left左から取得
Mid途中から取得
Right右から取得

実務での活用例

  • 社員コードの先頭判定
  • 日付データの分解
  • 文字列の分類処理
  • データ整形

特にコード判定でよく使われます。


注意点

① 文字数以上を指定すると?

全体が返ります。

Left("ABC", 10)  ' → ABC

② Nullに注意

Nullの場合はエラーになります。


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

Dim val As Variant

val = Range("A1").Value

If Not IsNull(val) Then
    MsgBox Left(val, 3)
End If

よくあるエラーと対処法

① 型が一致しません

Nullやエラー値の可能性があります。

② 思った文字が取得できない

文字数指定を確認してください。

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

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


まとめ

  • Leftは文字列の左側を取得する関数
  • 文字列分解の基本
  • 条件分岐やデータ整形で活躍
  • Mid・Rightとセットで覚える

Left関数を使いこなせるようになると、文字列処理の幅が大きく広がります。
VBAでは非常に使用頻度が高いので、ぜひマスターしておきましょう。

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

コメント

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