エクセルで範囲選択した値を結合させる

はじめに

Excel2010(古いですね…)で作業している時に、範囲指定して文字列を結合したいので、CONCATENATE関数で結合しようとしたところ、範囲指定での結合に対応していないらしいので、自作することにした。

ちなみに、Excel2016やOffice35ではCONCATや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(結合セル範囲, ":")

スポンサーリンク

VBAExcel, VBA

Posted by tterima