Excel

【Excel】VBAマクロで文字列の切り出し(指定文字以前や特定文字以降、〜文字目以降や以前)方法

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

この記事では、VBAマクロを用いてExcelの文字列の切り出しや文字数の調査について解説していきます。

ポイントとしてはLen関数、InStr関数、Mid関数を使用することです。

なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。

そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。

それでは詳しく見ていきましょう!

VBAマクロで文字列の切り出し(指定文字以前)方法【InStr関数、Mid関数】

それではまず、VBAマクロで文字列の切り出し(指定文字以前)方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub KiridashiMae()
    Dim hensuu As Range, moji As String, tokutentekiMoji As String
    Dim ichi As Integer
    
    tokutentekiMoji = InputBox("切り出す基準の文字を入力してください")
    
    For Each hensuu In Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
        ichi = InStr(hensuu.Value, tokutentekiMoji)
        If ichi > 0 Then
            moji = Mid(hensuu.Value, 1, ichi - 1)
            hensuu.Offset(0, 1).Value = moji
        End If
    Next hensuu
End Sub

コードのAlt+F8を押し、マクロ選択画面でKiridashiMae関数を実行します。

このコードでは、A列のデータから特定の文字以前の部分をB列に表示します。

InStr関数で文字の位置を特定し、Mid関数で指定した位置から文字を切り出します。

 

VBAマクロで文字列の切り出し(指定文字より後ろ)方法【InStr関数、Mid関数】

続いては、VBAマクロで文字列の切り出し(指定文字より後ろ)方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub KiridashiUshiro()
    Dim hensuu As Range, moji As String, tokutentekiMoji As String
    Dim ichi As Integer
    
    tokutentekiMoji = InputBox("切り出す基準の文字を入力してください")
    
    For Each hensuu In Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
        ichi = InStr(hensuu.Value, tokutentekiMoji)
        If ichi > 0 Then
            moji = Mid(hensuu.Value, ichi + Len(tokutentekiMoji))
            hensuu.Offset(0, 1).Value = moji
        End If
    Next hensuu
End Sub

コードのAlt+F8を押し、マクロ選択画面でKiridashiUshiro関数を実行します。

このコードでは、A列のデータから特定の文字以後の部分をB列に表示します。

InStr関数とMid関数を使って、文字の位置を特定し、文字を切り出しています。

VBAマクロで文字列の切り出し(〜文字目以降)方法【Len関数、Mid関数】

続いては、VBAマクロで文字列の切り出し(〜文字目以降)方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub KiridashiMojiMe()
    Dim hensuu As Range, moji As String
    Dim ichi As Integer
    
    ichi = InputBox("何文字目以降を切り出しますか?")
    
    For Each hensuu In Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
        If Len(hensuu.Value) >= ichi Then
            moji = Mid(hensuu.Value, ichi)
            hensuu.Offset(0, 1).Value = moji
        End If
    Next hensuu
End Sub

コードのAlt+F8を押し、マクロ選択画面でKiridashiMojiMe関数を実行します。

このコードでは、A列のデータから指定した文字目以後の部分をB列に表示します。

Len関数で文字列の長さを取得し、Mid関数で指定した位置から文字を切り出します。

まとめ

この記事では、ExcelのVBAマクロを使用して、文字列の切り出しや文字数の調査について学ぶことができました。

これらの関数を活用して、日々の業務効率を向上させましょう!