この記事では、VBAマクロで右から特定の文字まで抽出・取得・削除する方法【Right, Mid, InStrRev関数使用】について解説していきます。
ポイントとしては、Right, Mid, InStrRev関数の使用です。
初心者でも理解しやすいように、変数名を独特の名前(日本語のローマ字風)にしていますので、実際に使用する際はより一般的な英語表記に変更してください。
それでは、具体的な手順を見ていきましょう!
VBAマクロで右から特定の文字まで抽出・取得する方法【指定文字列】
それではまず、右から特定の文字まで抽出・取得する方法について解説していきます。
具体的には、C列に着目し2行目から最終行までのセル内の文字列を順番に読み込み、右から文字列に”Z”という指定文字があればこれより後を抽出しD列に記載するという処理にしてみています。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub MojiChushutsu()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim kensuu As Integer
kensuu = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row
Dim i As Integer
For i = 2 To kensuu
Dim genzaiCell As String
genzaiCell = ws.Cells(i, "C").Value
Dim Znoichi As Integer
Znoichi = InStrRev(genzaiCell, "Z")
If Znoichi > 0 Then
ws.Cells(i, "D").Value = Right(genzaiCell, Len(genzaiCell) - Znoichi)
End If
Next i
End Sub
コードのAlt+F8を押し、マクロ選択画面でMojiChushutsu関数を実行します。
このコードでは、C列の2行目から最終行までのセルを順にチェックし、”Z”の文字があれば、その位置から右側の文字列をD列に抽出します。
VBAマクロで右から特定の文字まで削除する方法【指定文字列】
続いては、右から特定の文字まで削除する方法について解説していきます。
具体的には、D列に着目し2行目から最終行までのセル内の文字列を順番に読み込み、右から文字列に”T”の文字があればこれより後を削除しE列に記載する処理としています。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub MojiSakujo()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim kensuu As Integer
kensuu = ws.Cells(ws.Rows.Count, "D").End(xlUp).Row
Dim i As Integer
For i = 2 To kensuu
Dim genzaiCell As String
genzaiCell = ws.Cells(i, "D").Value
Dim Tnoichi As Integer
Tnoichi = InStrRev(genzaiCell, "T")
If Tnoichi > 0 Then
ws.Cells(i, "E").Value = Left(genzaiCell, Tnoichi - 1)
End If
Next i
End Sub
コードのAlt+F8を押し、マクロ選択画面でMojiSakujo関数を実行します。このコードでは、D列の2行目から最終行までのセルを順にチェックし、”T”の文字があれば、その位置までの文字列をE列に保持し、以降を削除しています。
まとめ VBAマクロで右から特定(指定)の文字列まで取得・削除・抽出する方法【Right, Mid, InStrRev関数使用】
この記事では、VBAマクロで右から特定の文字まで抽出・取得・削除する方法【Right, Mid, InStrRev関数使用】について確認しました。
マクロをマスターしてさらに快適に過ごしていきましょう!!!(^^)/