クリップボードのデータを結合セルへ貼り付ける
通常、クリップボードのデータを結合セルに貼り付けようとすると・・・・・・
このように、「この操作は結合したセルには行えません」等のエラーメッセージが表示され、貼り付けることができません。
そのようなモヤモヤを解消し、ストレスなく仕事を行うために今回のマクロを作ってみました。
下記のようなクリップボードのデータを・・・・・・
このように、結合セルに貼り付けることができます。
ちなみに、結合セルと単一セルが混在していても、貼り付けできます。
ついでに可視セルのみに貼り付ける機能も追加しました。(画面上非表示のセルには貼り付けしません)
今回のマクロを使用するには、事前にVBEからMicrosoft Forms 2.0 Object Libraryを参照設定する必要があります。
(ツール→参照設定→参照からWindows\System32\FM20.DLLを選択)
***************************************
Sub クリップボードのデータを結合セルへ貼り付け()
'Microsoft Forms 2.0 Object Libraryを参照設定して下さい
Dim Dobj As DataObject
Dim V As Variant
Dim i As Integer
Dim Y As Integer
Dim X As Integer
Set Dobj = New DataObject
With Dobj
.GetFromClipboard
On Error Resume Next
V = .GetText
On Error GoTo 0
End With
If Not IsEmpty(V) Then
V = Split(CStr(V), vbCrLf)
i = 0
Y = ActiveCell.Row
X = ActiveCell.Column
Do While i <= UBound(V)
If Cells(Y, X).Address = Cells(Y, X).MergeArea(1).Address _
And Rows(Y).Hidden = False Then
A = CStr(V(i))
Cells(Y, X).Value = A
Y = Y + 1
i = i + 1
Else
Y = Y + 1
End If
Loop
Else
MsgBox "クリップボードにデータがありません!"
End If
End Sub
***************************************
※SubからEnd Subまでをコピペしてマクロを使用できます。使用の際は自己責任でお願いいたします。
下記のマクロも合わせて使うとより効果的です。