Home > 即効テクニック > Excel VBA > セル操作関連のテクニック > カンマで区切られたセルの値を分析する(区切り範囲数を取得する)

即効テクニック

セル操作関連のテクニック

カンマで区切られたセルの値を分析する(区切り範囲数を取得する)

(Excel 97/2000)
セル内にカンマで区切られた値が入力されているとします。
たとえば、「4/6,天気,晴れ,最高気温,17度」という値です。
セルA1の値がカンマで5つに区切られていることを、InStr関数とSplit関数を使って分析するサンプルを紹介します。
準備として標準モジュールに次のマクロを作成してください。

<InStr関数を使ったサンプル>Excel97/2000
Sub Sample1()
    Dim myBuf As String
    Dim i As Integer

    myBuf = Range("A1").Value

    Do Until InStr(myBuf, ",") = 0
        i = i + 1
        myBuf = Mid(myBuf, InStr(myBuf, ",") + 1)
    Loop

    MsgBox i + 1 & "個に分れています"

End Sub

<Split関数を使ったサンプル>Excel2000
Sub Sample2()
    Dim AllData As Variant
    Dim myData  As Variant
    Dim i       As Integer

    AllData = Split(Range("A1"), ",")
    
    For Each myData In AllData
        i = i + 1
    Next
    
    MsgBox i & "個に分れています"

End Sub

  1. InStr関数は、文字列の中から指定した文字列を検索し、最初に見つかった 文字位置(先頭からその位置までの文字数)を返す文字列処理関数です。
  2. Split関数は、各要素ごとに区切られた文字列から1次元配列を作成し、 返します。