Excel VBAで貼付け

自分用メモ。
Excel VBAで貼付け(Paste)が上手くできない時があった。このページにずばり答えがあった。

貼り付けるマクロを自動記録すると、ActiveSheet.Paste と記録されるので、「ActiveSheet」の部分を「Sheets(“sheet2”).Range(“E1:G1”)」のような表現に置き換えたくなりがちですが、それは間違いです。
Rangeメソッドは、クリップボードの内容をシートに貼り付けてくれますが、このメソッドを使う前に貼り付け先のセル範囲を選択しておくか、または、下記のように記述します。
20 ActiveSheet.Paste Destination:=Range(Cells(1, 5), Cells(1, 7))

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です