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
▼ページトップへ