引数Destinationを指定すると、クリップボードのコピーとペーストの機能を利用して、指定したセル範囲にデータが貼り付けられます。
実行後は、クリップボードは空になり、コピーモードにはなりません。

Excelでクリップボードが利用される際は、内容自体のコピーはペースト時まで保留されます。ペースト時になって初めてコピー&ペーストされるので、ペースト時のセル範囲の内容が有効になります。

また、コピーモードのままコピー元のブックを閉じたり、Excelを終了したりすると、終了前にその時点のデータがクリップボードにコピーされます。ただし、これをExcelにペーストした場合は、書式なしで貼り付けられます。

思わぬ結果にならないよう、コピーした後のペースト処理は速やかに行うと良いでしょう。

Sub Sample()
    Worksheets("Sheet1").Range("A1:B9").Copy _
        Destination:=Worksheets("Sheet2").Range("B1")
End Sub
Sampleは、Sheet1のセルA1:B9をSheet2のB1を先頭とするセル範囲にコピーします。
貼り付け先にデータが入っていても上書きします。
背景色や表示形式などの書式もすべてコピーしますが、セル範囲を対象とした場合は列幅・行の高さはコピーされません。
列幅もコピーしたい場合には列全体を対象にして行ってください。行の高さも同じです。
あるいはSpacialPasteメソッドを使用して、列幅のみをコピーしてもよいでしょう。 コピー元のセル範囲と貼り付け先のセル範囲の形が違うと、エラーが発生することがあります。エラー発生の条件はマニュアル操作でコピーするときと同じです。

バージョン2000以降のOfficeには、Officeクリップボードの機能があります。
Windows標準のクリップボードは1つのデータしか保持しておけないのに対し、Officeクリップボードには複数のデータを保持できるので、前にさかのぼって利用できます。このOfficeクリップボード内のデータは、HTML形式でコピーされています。
Officeアプリケーションだけでなく、他のアプリケーションでコピー/カットしたデータも保持されますが、引数Destinationを指定してCopyメソッドを実行した場合は、Officeクリップボードには保持されません。
また、VBAでOfficeクリップボードを操作するオブジェクトは用意されていないので、VBAから直接操作はできません。

  • ピボット集計で2つの表を合わせたいです
  • Re.「シート名のない!のついたセルの意味について」の「シナモンジンジャ」さんへ
  • nkf32.dll をAcccessのVBAが見つけられません。
  • オートフィルタで既存のシートに転記する方法
  • Excel関数だけで、特定会社の営業日を調査できますか?
  • シート名のない!のついたセルの意味について
  • vbaにライブラリを取り込む方法について
  • 運営会社 - お問い合せ - 広告掲載 - プライバシーポリシー - サイトマップ - リスキリング支援