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

コメント