こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

エクセルVBAでコピー先シートのセルを非アクティブのままペーストを行うには

以下の文をコピー先シートのセルを非アクティブのままペーストを行うにはどうしたらいいのでしょうか?PasteSpecialOperation:=xlPasteAll が問題だと思うのですがどうしたらいいかがわかりません

Sub test()
クリップ配列 = Application.ClipboardFormats
For Each クリップデータ In クリップ配列
If クリップデータ = xlClipboardFormatText Then
Range("B" & Rows.Count).End(xlUp).Offset(1,0).PasteSpecial Operation:=xlPasteAll
End If
Next
End Sub

投稿日時 - 2009-11-13 17:46:26

QNo.5445036

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

こんばんは。

最初に、クリップ配列 = Application.ClipboardFormats で、取得したデータが、xlClipboardFormatText だったら貼り付けするというのは、どういうデータでしょうか。通常、テキスト貼り付けすればよいのではないかと思います。

クリップボードの内容によって、種類別けするコードというのは、主に、インターネットから貼り付けたときなどに不要成分が含まれていることを指すのです。いくら、テキスト成分があっても、それ以外もあるのですから、そのまま貼り付けてしまったら、意味がありません。その場合、テキスト貼り付けするというモードにするわけです。

しかし、その場合、クリップボードから、コピー先シートのセルを非アクティブのまま直接、ペーストすることは出来ないように思います。一旦、どこかに吐き出してから、次に、非アクティブのセルに貼り付けというスタイルにしかないように思います。

投稿日時 - 2009-11-14 00:33:27

お礼

参考になりましたありがとうございます

投稿日時 - 2009-11-14 13:43:19

ANo.1

Worksheets("コピー先のシート名").Range("B" & Rows.Count).End(xlUp).Offset(1,0).PasteSpecial Operation:=xlPasteAll

と言う事ではなくて?

投稿日時 - 2009-11-13 20:20:08

あなたにオススメの質問