関数・メソッド

セルをコピーする【Copyメソッド】【ExcelVBA】

構文

Object.Copy(Destination)

Destination・・・貼付先のセルを指定します。【省略可能】

指定したオブジェクト(Rangeでのセル・セル範囲)をコピーします。

Copyメソッドのコードサンプル

Public Sub test()

    '■特定セルをコピーする
    Range("A1").Copy
    Cells(1, 1).Copy

    '■セル範囲をコピーする
    Range("A1:A5").Copy
    
    '■B1に貼り付ける
    Paste Destination:=Range("B1")
        
        
    '■コピーしたセルを別セルに貼り付ける。
    Range("A1").Copy Destination:=Range("B1")

    '■コピーしたセルを別セルに貼り付ける。
    Range("A1:A5").Copy Destination:=Range("B1")     '"B1:B5"に反映
    Range("A1:A5").Copy Destination:=Range("B1:B5")  '"B1:B5"に反映
    
    '■少しは間違っていても自動的に補正してくれる
    Range("A1:A5").Copy Destination:=Range("B1:B4") '"B1:B5"に反映
    Range("A1:A5").Copy Destination:=Range("B1:B6") '"B1:B5"に反映
    Range("A1:A5").Copy Destination:=Range("B1:C2") '"B1:B5"に反映

    '■Cellsで指定する場合はこちら
    Range("A1:A5").Copy Destination:=Cells(1,2) '"B1:B5"に反映

End Sub

注意点

  • Cutメソッドを使用した場合と違い、PasteSpecialメソッドが使用可能です。
    ※手動で右クリック→コピーした時と同じ動作です。
  • こちらのようにフォーマットを貼付するときはコピーペーストする事も多いですが、
    通常はValueで反映が望ましいでしょう。(クリップボードを使用せずともVBA側で使えるのでCopyメソッドは2度手間です)

関連記事

セルに値を入力する【Valueプロパティ】【ExcelVBA】
.Valueは必要?不必要?省略しても良い?【ExcelVBA】
【VBA一覧】XlPasteType列挙 定数一覧
クリップボードの中身を貼り付ける【Pasteメソッド】※PasteSpecialがおすすめ
形式を選択して貼り付ける【PasteSpecialメソッド】
セルを切り取る【Cutメソッド】【ExcelVBA】

コメント

タイトルとURLをコピーしました