|
▼げっち さん:
こんにちは
・2回に分けてコピー/ペーストをする
・一度、どこかにペーストしたあと目的の領域に転記する
なんて回答すると身もふたもない・・・・ですかね?
たとえばの例です。A1〜F1の6セルを A2〜C2 と A3〜C3 にわけて
セットしています。
でも、わざわざ、これをやるぐらいなら、コピー/ペーストではなく
通常のコードで3つずつセルを転記したほうがいいのでは?
★Microsoft Forms 2.0 Object Library への参照設定が必要です。
ダミーでユーザーフォームを挿入して、その後解放すれば、自動的に参照設定されます。
Sub Sample()
'Microsoft Forms 2.0 Object Libraryに参照設定
Dim buf As String
Dim v As Variant
Range("A1:F1").Copy
With New DataObject
.GetFromClipboard
buf = .GetText
v = Split(buf, vbTab)
Range("A2:C2").Value = extract(v, 1, 3)
Range("A3:C3").Value = extract(v, 4, 3)
End With
Application.CutCopyMode = False
End Sub
Private Function extract(v As Variant, f As Long, n As Long) As Variant
Dim i As Long
Dim k As Long
Dim w() As String
ReDim w(1 To n)
For i = f - 1 To f - 1 + n - 1
k = k + 1
w(k) = WorksheetFunction.Clean(v(i))
Next
extract = w
End Function
Sub こんなことをするくらいなら()
Range("A2:C2").Value = Range("A1:C1").Value
Range("A3:C3").Value = Range("D1:F1").Value
End Sub
|
|