[Excel VBA] 文字列を結合する
Excel関数には、CONCATENATEという指定した文字をつなげる関数が用意されています。
ですが、この関数、対照の文字を引数に1つ1つ指定する必要があり、セル範囲でまとめて指定することができません。
また、結合する文字列の間に文字を入れることもできず、使い勝手が悪いです。
そのため、簡単なVBA関数を用意しました。
標準モジュールに記載しておけば、シート上で標準関数と同じように使用できます。
' ------------------------------------------------------------------------- ' セル範囲内の文字列を結合する ' ' targetRange 対象のセル範囲 ' separater 区切り文字 未指定の場合は何も付与しない ' ------------------------------------------------------------------------- Function Join(targetRange As Range, Optional separater As String = "") As String Dim result As String For Each r In targetRange result = result & r.Value & separater Next If Len(result) > 0 Then result = Left(result, Len(result) - Len(separater)) End If Join = result End Function
たとえば、
セルに「=JOIN(A1:B10, “,”)」などと指定すれば、セルA1~B10間でのすべてのセルをカンマで結合した文字列を表示します。
2個目の引数を指定しなければ単純に文字列を結合します。
VBAを追加したブックはxlsmという拡張子でないと保存できないのでご注意ください。
== ランキングに参加しています。ぜひクリックお願いします ==
単語登録ダイアログを表示するショートカット パスワード 「もっと強くキミを守りたい」ポスターがすごい