プロプログラマ

プログラマーを職業としてます。 Flex,Air,C#,Oracle,HTML+JSの言語ノウハウを中心に情報発信していきます

[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という拡張子でないと保存できないのでご注意ください。

 

== ランキングに参加しています。ぜひクリックお願いします ==

プログラム ブログランキングへ
にほんブログ村 IT技術ブログへ
にほんブログ村

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください