VBAの勉強を始めてみた

色々試しています。

選択範囲のデータをカンマ区切りでクリップボードに格納する

選択したセル(複数選択可)の文字列を、カンマ区切りでクリップボードに格納します。選択したセルが結合セルでも、余分なTabや改行を含まず単一セルと同じような扱いでクリップボードに格納できます。
次回掲載予定のマクロと組み合わせて使用するためのものです。

下記のマクロを使用するには、事前にVBEからMicrosoft Forms 2.0 Object Libraryを参照設定する必要があります。
(ツール→参照設定→参照からWindows\System32\FM20.DLLを選択)


***************************************
Sub 選択範囲のデータをカンマ区切りでクリップボードに格納()
    'Microsoft Forms 2.0 Object Libraryを参照設定して下さい
   
    Dim myRange As Range
    Dim V As String

    For Each myRange In Selection.SpecialCells(xlCellTypeVisible)   '可視セルのみに処理を行う
        If myRange.Address = myRange.MergeArea(1).Address Then   '結合セルの場合は左上の値のみ取り出す
            V = V & myRange.Value & ","
        End If
    Next myRange
   
    V = Left(V, Len(V) - 1) '最終行のカンマ区切りを取り除く
   
    With New MSForms.DataObject
        .SetText V  '変数の値をDataObjectに格納する
        .PutInClipboard 'DataObjectのデータをクリップボードに格納する
    End With

End Sub
***************************************

 ※SubからEnd Subまでをコピペしてマクロを使用できます。使用の際は自己責任でお願いいたします。