Excel

【Excel】VBAマクロで文字列を分割(1文字ずつ、区切り文字、改行、配列、Mid関数、Split関数)する方法

当サイトでは記事内に広告を含みます
いつも記事を読んでいただきありがとうございます!!! これからもお役に立てる各情報を発信していきますので、今後ともよろしくお願いします(^^)/

この記事ではExcelのVBAマクロを使用して文字列を分割する方法について解説していきます。

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

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

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

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

VBAマクロで文字列を分割し1文字ずつ区切りセル表示する方法【右側に最終文字列まで出力】【Mid関数】

それではまず、文字列を1文字ずつ区切りセル表示する方法について解説していきます。

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


Sub MojiBunkatsu()

    Dim mojiretsu As String
    Dim i As Integer
    Dim hensuu As String

    mojiretsu = "こんにちは"
    For i = 1 To Len(mojiretsu)
        hensuu = Mid(mojiretsu, i, 1)
        Cells(1, i).Value = hensuu
    Next i

End Sub

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

このコードは、指定した文字列を1文字ずつExcelのセルに出力します。

例えば、”こんにちは”という文字列を指定した場合、A1セルに”こ”、B1セルに”ん”といった具体的な出力が得られます。

VBAマクロで文字列を区切り文字で分割する方法【カンマやスペースなど複数にも対応】【Split関数】

続いては、文字列を区切り文字で分割する方法について解説していきます。

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


Sub KugiriBunkatsu()

    Dim mojiretsu As String
    Dim bunkatsu() As String
    Dim i As Integer

    mojiretsu = "apple,banana,orange"
    bunkatsu = Split(mojiretsu, ",")
    
    For i = LBound(bunkatsu) To UBound(bunkatsu)
        Cells(1, i + 1).Value = bunkatsu(i)
    Next i

End Sub

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

このコードは、指定した文字列をカンマで分割し、それぞれの要素をExcelのセルに出力します。例えば、”apple,banana,orange”という文字列を指定した場合、A1セルに”apple”、B1セルに”banana”といった具体的な出力が得られます。

VBAマクロで文字列を改行で分割し、配列に格納する方法【Split関数】

最後に、文字列を改行で分割し、配列に格納する方法について解説していきます。

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


Sub KaigyoBunkatsu()

    Dim mojiretsu As String
    Dim bunkatsu() As String
    Dim i As Integer

    mojiretsu = "apple" & vbCrLf & "banana" & vbCrLf & "orange"
    bunkatsu = Split(mojiretsu, vbCrLf)
    
    For i = LBound(bunkatsu) To UBound(bunkatsu)
        Cells(i + 1, 1).Value = bunkatsu(i)
    Next i

End Sub

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

このコードは、指定した文字列を改行で分割し、それぞれの要素を配列に格納します。その後、配列の要素をExcelのセルに縦に出力します。

例えば、”apple”、”banana”、”orange”という3つの文字列を改行で連結した文字列を指定した場合、A1セルに”apple”、A2セルに”banana”といった具体的な出力が得られます。

以上が、VBAマクロを使用して文字列を分割する方法についての解説です。VBAの関数やメソッドを活用することで、様々な文字列操作を行うことができます。今回の記事で紹介した方法を参考に