Excel

ワークシート関数 - 文字列分離

  • 概要

  • 指定文字列を、指定された分離符で分離した文字列を返します。

  • 構文

  • STRSPLIT(文字列, 分離符, 位置)

  • 引き数

    • 文字列

    • 分離対象となる文字列を指定します。
      セルを指定することも可能です。

    • 分離符

    • どの文字列で分離するか、この値で決定します。

    • 位置

    • 分離後、何番目の文字列を返すか指定します。
      分離した数よりも大きい場合は、最終位置の文字列を返します。

  • 実行例

  • A1セルに「AAA,BBB,CCC」と入力
    B1セルに「=STRSPLIT(A1,",",2)」と入力
    B1セルには「BBB」が表示される。
Function STRSPLIT(ByRef Text As String, Sep As String, TargetColumn As Long)

    On Error Resume Next

    ' 分離符が空
    If (Sep = "") Then
        STRSPLIT = Text
        Exit Function
    End If
    
    ' 指定列位置が 0 以下
    If (TargetColumn <= 0) Then
        STRSPLIT = Text
        Exit Function
    End If

    ' 分離
    Dim Bef As Long, Now As Long, Column As Long
    Do
        ' 次の分割文字列を探す
        Now = InStr(Bef + 1, Text, Sep)
        
        If (Now > 0) Then
            ' 列位置を更新し、指定列位置と比較
            Column = Column + 1
            If (Column = TargetColumn) Then
                ' 指定列位置の文字列を返す
                STRSPLIT = Mid$(Text, Bef + 1, Now - Bef - 1)
                Exit Function
            Else
                Bef = Now
            End If
        Else
            ' 分割文字列が見つからない場合、最終位置の文字列を返す
            STRSPLIT = Mid$(Text, Bef + 1, Len(Text) - Bef)
            Exit Function
        End If
    Loop

End Function