Excel

【Excel】VBAマクロで右から特定の文字まで抽出・取得・削除する方法【Right, Mid, InStrRev関数使用】

当サイトでは記事内に広告を含みます

この記事では、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関数使用】について確認しました。

マクロをマスターしてさらに快適に過ごしていきましょう!!!(^^)/