【ExcelVBA】セルのコピー・ペースト
基本
同じシート内のセルのコピペ(Range)
Range("A1").Copy Range("B1")
同じシート内のセルのコピペ(Cells)
Cells(1, 1).Copy Cells(1, 2)
A1~D10の範囲のデータをF1を起点にコピペ(Range)
Range("A1:D10").Copy Range("F1")
A1~D10の範囲のデータをF1を起点にコピペ(Cells)
Range(Cells(1, 1), Cells(10, 4)).Copy Cells(1, 5)
別のシートへのコピペ
sheets("Sh1").Range("A1").Copy sheets("Sh2")Range("B1")
別のブックへのコピペ
Workbooks("Wb1").Sheets("Sh1").Range("A1").Copy _ Workbooks("Wb2").Sheets("Sh2").Range("B1")
※末尾の「 _ 」は、複数行を1つのコードとして実行させるもの
最下行を取得して貼り付け
Range("A1:A"& Cells(Rows.Count, 1).End(xlUp).Row ).Copy Range("B1")
最下行を取得して貼り付け(C列Ver)
Range("C1:C"& Cells(Rows.Count, 3).End(xlUp).Row ).Copy Range("B1")
形式を選択して貼り付け
数値として貼り付け
Range("A1").Copy Range("F1").pastespecial paste:=xlpasteValues
行と列を入れ替えて貼り付け(タテ→ヨコにする)
Range("A1:A10").Copy Range("B1").PasteSpecial Transpose:=True
A列の値をB列に加算する
Range("A1:A10").Copy Range("B1:B10").PasteSpecial Operation:=xlAdd
(引き算=xlSubtract、掛け算=xlMultiply、割り算=xlDivide)
変数を使う
シートを変数にセットしてコピペ
Dim ws as worksheet set ws1 = Workbooks("Wb1").Sheets("Sh1") set ws2 = Workbooks("Wb2").Sheets("Sh2") ws1.Range("A1").Copy ws2.Range("A1")
変数で最下行を取得して貼り付け
Dim EndRow as Long EndRow = Cells(Rows.Count, 1).End(xlUp).Row Range("A1:A"& EndRow ).Copy Range("B1")
変数で右端のセルを取得して貼り付け
Dim EndCol as Long EndCol = Cells(1, Columns.Count).End(xlToLeft).Column Range(Cells(1, 1), Cells(1, EndCol)).Copy Range("A2")