EXCEL、VBA

【VBA】カンマ区切り文字列の指定カンマ個所を取得する

 

カンマ区切り文字列の指定カンマ個所を取得する

カンマ区切り文字列の指定カンマ個所を取得する関数です。

例えば”one,two,three”で”2″を指定すると”two”を取得します。

引数① カンマ区切りを含む文字列

引数② カンマ区切りの何番目を取得するか(1~)

戻り値:指定したカンマの場所に文字列

Public Function getCharTargetComma(ByVal Target As String, ByVal commaplace As Long) As String
    
    Dim tempArray() As String
    Dim arrayCount As Long
    tempArray() = Split(Target, ",")
    arrayCount = UBound(tempArray) + 1
    
    '配列の要素数 > 指定カンマ位置の場合または、""で返す
    If (commaplace > arrayCount) Or (commaplace < 1) Then
        getCharTargetComma = ""
        Exit Function
    End If
    
    getCharTargetComma = tempArray(commaplace - 1)
        
End Function

 

実行結果

' "one,two,three,four,five,six,seven"に対し、カンマ区切り1番目の文字を取得する
Debug.Print getCharTargetComma("one,two,three,four,five,six,seven", 1)
' one

' "one,two,three,four,five,six,seven"に対し、カンマ区切り3番目の文字を取得する
Debug.Print getCharTargetComma("one,two,three,four,five,six,seven", 3)
' three

' "one,two,three,four,five,six,seven"に対し、カンマ区切り5番目の文字を取得する
Debug.Print getCharTargetComma("one,two,three,four,five,six,seven", 5)
' five