セル範囲の文字列を結合するユーザー関数
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)」のように複数のセル範囲を指定することもできます。
[ 2012年10月2日 | カテゴリー: Excel | タグ: CONCATENATE , VBA , ユーザー定義関数 ]
« 重複なしでセルの個数を数えるユーザー定義関数 | 目次を自動的に更新するマクロ »
コメント
-
[…] 以前、紹介した「セル範囲の文字列を結合する関数」は次の通りです。 […]
[…] 以前、紹介した「セル範囲の文字列を結合する関数」は次の通りです。 […]