Microsoft Excel VBA - セルの値を別の範囲にコピーする方法

◆概要

Copyメソッドの使い方です。次の例は、セルA1の値を範囲E1:E6にコピーします。
Copyメソッドでは、セルの書式もコピーされます。

◆Sample code

Sub CopyRange()
     'A1の値を範囲E1:E6にコピーします。
    
    Range("a1").Copy Range("e1:e6")

End Sub
  

次の例は、A1の値をC1にコピーします。この例では、書式はコピーされずセルの値のみコピーされます。

' セルA1の値をC1に値のみコピー
  Range("C1") = Range("A1")
  

◆別のシートにコピーする
 次のようにすると、別のシートにコピーすることができます。
 次の例では、Sheets(1)のセル範囲A3からB7をSheets(2)のB2にコピーします。この場合、ワークシートSheet2は選択状態になりません。また、コピー元のシートSheets(1)を選択する必要もなく、他のシートからも実行することができます。

Sheets(1).Range("a3:b7").Copy Sheets(2).Range("b2")

次の例では、Sheet(1)のセルB1のアクティブセル領域をSheet(2)のB3にコピーします。

Sheets(1).Range("B3").CurrentRegion.Copy Sheets(2).Range("B3")

 なお、2つめの例で値貼り付けをしたい場合は、次のようにします。この場合も、マクロ実行後にSheets(1)やSheets(2)は選択状態にならず、他のシートから実行することができます。

    Sheets(1).Range("B3").CurrentRegion.Copy
    Sheets(2).Range("B3").PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False



▼ページトップへ