【Excel】文字列連結を範囲指定で行う。

concatenate関数を範囲指定で行えないかと考えていたらよさげな関数が落ちていたのでメモ。

Function CONCATENATERANGE(ParamArray Elements())
    Dim c, ub As Long
    Dim t As String
    Dim rng, rngs As Range
    ub = UBound(Elements())
    t = ""
    For c = 0 To ub
        Set rngs = Elements(c)
        For Each rng In rngs
            If Not IsEmpty(rng.Value) Then
                t = t & rng.Value
            End If
        Next
    Next c
    CONCATENATERANGE = t
End Function

使用方法は下記の通り。

CONCATENATERANGE([範囲])

これはくっそ便利