セル範囲の文字列を結合するユーザー定義関数 マクロ講座

セル範囲の文字列を結合するユーザー定義関数をつくる

セル範囲の文字列を結合するユーザー定義関数
ユーザー定義関数

CONCATENATEだと大変だユーザー定義関数を使おうマクロ 25回

CONCATENATE関数では面倒!

セルの文字列をつなげる時、CONCATENATE(コンカテネイト)関数を使うことが多いですね。
しかし、引数を追加するのが面倒で、単純だけれどつなげるセル数が多い時などは、もっと簡単にできたらと思うことがあります。

(サンプルファイルは、こちらから 3行マクロ25回サンプルデータ

関数でセルの文字列をつなげる

通常のCONCATENATE関数の場合ですと、A2:D2までのセルの文字列を結合する場合に、一つずつ追加していきます。
NAMAEマクロ1
結果、このような式になります。=CONCATENATE(A2,B2,C2,D2)
サンプルでは、セルが4つですからいいですけど、255個まで結合できるとはいえ、それって苦痛じゃあないですか?
NAMAEマクロ2

ユーザー定義関数でセルの文字列をつなげる

そこで単純なセル範囲なら選択するだけで結合できるユーザー定義関数をつくって処理することにしました。 VBEを表示して、標準モジュールに以下のコードを貼り付けます。
Function Ketugou(MyRange As Range) As String
    Dim c As Range
    For Each c In MyRange
        Ketugou = Ketugou & c
    Next
End Function
NAMAEマクロ3

セルの文字列結合

ユーザー定義関数は、関数と同じように使えます。
NAMAEマクロ4
ひとつだけ数式を入力して、あとはオートフィルでコピーします。
NAMAEマクロ5
結合するセル数が多い時に便利です。
NAMAEマクロ6

セルの文字列の間に半角スペースを入れて結合

字列の間に半角スペースを入れて結合したい時は、コードに & " "と追加してやります。
Function Ketugou(MyRange As Range) As String
    Dim c As Range
    For Each c In MyRange
        Ketugou = Ketugou & c & " "
    Next
End Function
動画版でのコードは、変数が若干違います。
Function ketugou(Srng As Range) As String
    Dim Erng As Range
    For Each Erng In Srng
        ketugou = ketugou & Erng.Value
    Next
End Function
おためしください。
NAMAEマクロ6

こちらもおすすめ