Excel

ワークシート関数 - 文字列結合

  • 概要

  • 指定範囲の文字列結合結果を返します。

  • 構文

  • STRUNION(セル範囲, [分離符])

  • 引き数

    • 範囲

    • 結合対象となるセル範囲を指定します

    • 分離符

    • 文字列と文字列の間に埋める文字列を指定します。
      この引き数は省略可能です。

  • 補足

  • 結合結果が65535文字を超える場合、エラーを返します。
Function STRUNION(ByRef TargetRange As Range, Optional Sep As String) As String

    On Error Resume Next

    ' 初期化
    Dim BufferPos As Long
    Dim BufferStr As String
    
    BufferPos = 0
    BufferStr = String(4096, 0)
    
    ' 文字列結合
    Dim Cell As Range
    Dim AddLength As Long
    For Each Cell In TargetRange
        ' バッファ拡張
        AddLength = Len(Cell.Text) + Len(Sep)
        Do While (Len(BufferStr) < BufferPos + AddLength)
            BufferStr = BufferStr & String(Len(BufferStr), 0)
        Loop

        ' 結合
        Mid$(BufferStr, BufferPos + 1, AddLength) = Cell.Text & Sep
        BufferPos = BufferPos + AddLength
    Next
   
    ' 結合した文字列を返す
    If (Len(BufferPos) > 0) Then
        STRUNION = Mid$(BufferStr, 1, BufferPos - Len(Sep))
    Else
        STRUNION = Mid$(BufferStr, 1, BufferPos)
    End If

End Function