pgbigorokuのブログ

プログラムの再利用できそうなコードをアップ

EXCEL VBA コレクション Itemのすべての文字を結合する。

コレクションの中に入れた文字列をすべて結合して出したいときはありませんか?
例えば、

コレクションに

Item(1)わたしは
Item(2)ユニバに
Item(3)いきたいです。

という内容を入れていた場合に
テキストで

わたしは
ユニバに
いきたいです。

という感じです。
FORで回すと、改行が残り結構煩雑なんですよね(笑)
というわけで関数、「nistrコレクションが文字列の場合結合する」を作ってみました。

Public Sub test()
    Dim cll As New Collection
    cll.Add "わたしは"
    cll.Add "ユニバに"
    cll.Add "行きたいです"
    Debug.Print nistrコレクションが文字列の場合結合する(cll, vbCr)
    
    

End Sub


'
' コレクションが文字列の場合結合する。
'https://pgbigoroku.hatenablog.com/entry/2022/08/25/094908
'2021/8/21
Public Function nistrコレクションが文字列の場合結合する(ByRef pcll As Collection, ByVal pstrDivide As String) As String
    Dim strRet As String
    Dim varFor As Variant
    On Error GoTo Errnisubコレクションが文字列の場合結合する
        For Each varFor In pcll
            strRet = strRet & pstrDivide & varFor
        Next
        nistrコレクションが文字列の場合結合する = Mid(strRet, Len(pstrDivide) + 1)
    
    Exit Function
Errnisubコレクションが文字列の場合結合する:
    nistrコレクションが文字列の場合結合する = ""
    Exit Function
    Resume Next
End Function