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

Right関数の使い方 ExcelVBA

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

  • 文字列の末尾だけ取得したい
  • ファイル拡張子を取り出したい
  • 日付やコードの後半部分を抽出したい

このような場合は、Right関数を使うことで解決できます。
文字列の右側(末尾)から指定した文字数を取得できる基本関数です。

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


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

この記事でできること

  • 文字列の右側を取得できる
  • コードや拡張子を抽出できる
  • 実務で使える文字列処理が分かる

基本:Right関数の使い方

基本構文はこちらです。

Right(文字列, 文字数)

例:

MsgBox Right("ABCDE", 2)

→ DE


Right関数の特徴

  • 右側(末尾)から取得
  • 文字列処理の基本関数

基本例

Dim str As String

str = "ExcelVBA"

MsgBox Right(str, 3)

→ VBA


セルの値から取得する

Range("B1").Value = Right(Range("A1").Value, 4)

A1の末尾4文字を取得します。


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

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

Dim str As String

str = "20240131"

MsgBox Right(str, 2)

→ 31


ファイル拡張子を取得する

Dim fileName As String

fileName = "sample.xlsx"

MsgBox Right(fileName, 5)

→ .xlsx


条件分岐で使う

Dim fileName As String

fileName = "test.csv"

If Right(fileName, 4) = ".csv" Then
    MsgBox "CSVファイルです"
End If

Lenと組み合わせる

不要部分を除外できます。

Dim str As String

str = "ABC-123"

MsgBox Right(str, Len(str) - 4)

→ 123


Left・Midとの違い

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

実務での活用例

  • 拡張子判定
  • 社員コード分解
  • 日付データ加工
  • データ整形

特にファイル処理でよく使われます。


注意点

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

全体が返ります。

Right("ABC", 10)  ' → ABC

② Nullに注意

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


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

Dim val As Variant

val = Range("A1").Value

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

よくあるエラーと対処法

① 型が一致しません

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

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

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

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

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


まとめ

  • Rightは文字列の右側を取得する関数
  • 末尾データ抽出に便利
  • 拡張子判定でよく使う
  • Left・Midとセットで覚える

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

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

コメント

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