セル範囲の文字列を結合するユーザー関数
Excelには、「CONCATENATE」という、文字列を結合するワークシート関数があります。
CONCATENATE(文字列1,文字列2,...)
このように引数に文字列を指定します。文字列としてセルを指定することもできますが、一つの文字列に指定できるのは一つのセルです。
そこで、セル範囲を指定して、それぞれのセルの文字列を結合するユーザー定義関数「CONCATENATERANGE」を作ってみました。
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
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(A1:C10)」のように引数にセル範囲を指定します。
「=CONCATENATERANGE(A1:B2,C3:D4,A5:B6)」のように複数のセル範囲を指定することもできます。