Excel VBA 逆引き集 | 分割

Excel VBA
スポンサーリンク

分割(文字列や配列の分割)

Excel VBAで「文字列を分割したい」「配列を分割して処理したい」という場面はよくあります。代表的なのは Split 関数 を使った文字列分割です。初心者向けに、コード例とテンプレートをかみ砕いて説明します。


基本の考え方

  • Split関数: Split(文字列, 区切り文字)
    → 文字列を区切り文字で分割し、配列に格納。
  • UBound/LBound: 配列の範囲を確認してループ処理。
  • 用途: CSVデータの分割、複数値の取り出し、文字列解析。

テンプレ1:カンマ区切りの文字列を分割

Sub Split_Comma()
    Dim text As String
    text = "りんご,みかん,バナナ,ぶどう"

    Dim arr As Variant
    arr = Split(text, ",")

    Dim i As Long
    For i = LBound(arr) To UBound(arr)
        Debug.Print arr(i)
    Next i
End Sub
VB
  • 結果: りんご みかん バナナ ぶどう

テンプレ2:スペース区切りの文字列を分割

Sub Split_Space()
    Dim text As String
    text = "Tokyo Osaka Nagoya Fukuoka"

    Dim arr As Variant
    arr = Split(text, " ")

    Dim i As Long
    For i = LBound(arr) To UBound(arr)
        Debug.Print arr(i)
    Next i
End Sub
VB
  • 結果: Tokyo Osaka Nagoya Fukuoka

テンプレ3:改行で分割

Sub Split_NewLine()
    Dim text As String
    text = "A社" & vbCrLf & "B社" & vbCrLf & "C社"

    Dim arr As Variant
    arr = Split(text, vbCrLf)

    Dim i As Long
    For i = LBound(arr) To UBound(arr)
        Debug.Print arr(i)
    Next i
End Sub
VB
  • 結果: A社 B社 C社

テンプレ4:分割した配列をシートに書き出す

Sub Split_ToSheet()
    Dim text As String
    text = "100,200,300,400"

    Dim arr As Variant
    arr = Split(text, ",")

    Dim ws As Worksheet: Set ws = Worksheets("Data")
    Dim i As Long
    For i = LBound(arr) To UBound(arr)
        ws.Cells(i + 1, 1).Value = arr(i)
    Next i
End Sub
VB
  • ポイント: 分割した配列をシートに展開できる。

テンプレ5:複数区切り文字に対応(ReplaceとSplit)

Sub Split_MultiDelimiter()
    Dim text As String
    text = "りんご,みかん;バナナ|ぶどう"

    ' 区切り文字を統一
    text = Replace(text, ";", ",")
    text = Replace(text, "|", ",")

    Dim arr As Variant
    arr = Split(text, ",")

    Dim i As Long
    For i = LBound(arr) To UBound(arr)
        Debug.Print arr(i)
    Next i
End Sub
VB
  • ポイント: 区切り文字が複数ある場合は、まず Replace で統一してから Split

例題で練習

'例1:カンマ区切りで分割
Sub Example1()
    Split_Comma
End Sub

'例2:スペース区切りで分割
Sub Example2()
    Split_Space
End Sub

'例3:改行で分割
Sub Example3()
    Split_NewLine
End Sub

'例4:分割した配列をシートに書き出す
Sub Example4()
    Split_ToSheet
End Sub

'例5:複数区切り文字に対応
Sub Example5()
    Split_MultiDelimiter
End Sub
VB

初心者向けポイント

  • Splitは一次元配列を返す: ループで取り出すのが基本。
  • 区切り文字を工夫: ","" "vbCrLf など。
  • 複数区切り文字: Replaceで統一してからSplit。
  • シート展開も簡単: 配列をCellsに書き出せば表にできる。
  • UBound/LBoundで範囲確認: 配列のサイズを必ず確認してループ。
タイトルとURLをコピーしました