OfficeType

VBA~コピー~Excel

単一セルのコピー

セルをコピーするにはCopyメソッドを使います。下のコードを実行するとセルA1をコピーしセルC1に貼り付けます。

Sub test1()
Range("A1").Copy Range("C1")
End Sub

image-01

image-02

範囲のコピー

範囲をコピーしたい場合はRangeオブジェクトで範囲を指定しCopyメソッドを使います。貼り付けで指定するセルは範囲の左上を張り付けたいセルを指定すれば、そのセルを基準に貼り付けられます。下のコードを実行するとセルA1からセルB5の範囲がセルD1からセルE5にコピーされます。

Sub test1()
Range("A1:B5").Copy Range("D1")
End Sub

image-03

image-04

行のコピー

行をコピーする場合はRowsオブジェクトで行を指定し、Copyメソッドを使います。下のコードを実行すると青色で塗りつぶされた行1が行3にコピーされます。

Sub test2()
Rows(1).Copy Rows(3)
End Sub

image-05

image-06

列のコピー

列をコピーする場合はColumnsオブジェクトで列を指定し、Copuメソッドを使います。下のコードを実行すると黄色で塗りつぶされたA列がC列にコピーされます。

Sub test3()
Columns(1).Copy Columns(3)
End Sub

A列は左から1列目なので行番号1、C列は左から3列目なので行番号3になります。

image-07

image-08

コピーを使わずにデータを取得する

文字列や数値などのデータだけ取得したい場合は=(イコール)を使えば取得できます。下のコードを実行するとセルA1のデータがセルC1に表示されます。

Sub test4()
Range("C1") = Range("A1")
End Sub

コピーを使う場合はRange("A1").Copy Range("C1")で元データが左ですが、=(イコール)を使う場合は元データを右辺に書くので注意してください。

image-09

image-10