Excelで範囲選択した値を、任意の文字で区切って結合させる

VBA

はじめに

Excelで範囲指定して、指定した範囲を何らかの文字で区切って結合させたい時ってあると思います。
ExcelではCONCATENATE関数がありますが、これはセルを一つ一つ指定して結合するだけなので、要件に合いません。

なので、今回は簡単なVBAを用いて、指定した範囲を任意の区切り文字で区切って結合する、JOIN関数を自作することにしました。

ちなみに、Office365ではTEXTJOIN関数がそれに当たるらしいです。

実装

' rng 結合したい範囲
' delim 結合文字(初期値:,)
Function JOIN(rng As Range, Optional delim As String = ",") As String
    Dim result As String
    Dim r As Range

    result = ""
    For Each r In rng
        result = result & r & delim
    Next

    JOIN = Left(result, Len(result) - 1)
End Function

使用方法

エクセルの任意のセルで=JOIN(結合セル範囲)としてください。

結合セル範囲はマウスでドラッグして、指定してあげても良いです。

また、区切り文字は指定しない場合はカンマ(,)で結合されますが、その他の区切り文字を指定する場合は第二引数に以下のように指定してください。(以下は「:」を区切り文字とする場合)
=JOIN(結合セル範囲, ":")

コメント