本記事では別シートへの値やデータをシンプルにコピーする方法について解説していきます。
Excelを使っていると別シートへ値やデータをコピーする機会が多くありますが、手動でコピー&ペーストを繰り返すと手間がかかる上間違いやデータの欠落が発生しやすいものです。
自分でも気付かない内にミスする事ってありますよね。
Excel VBAを活用する事で手間を大幅に減らして効率良くコピー作業を行えるのでぜひ今回の方法を覚えてみて下さい!
Excel VBAで別シートへの値やデータのコピー方法が分かり、手入力を行う手間や時間を削減できる。
別シートへ値やデータをコピーするシンプルな方法
今回は次の2つの構文を使って値やデータを別シートへコピーしていきます。
・値のみ別シートへコピーする場合
(コピー先シートのオブジェクト).Value =(コピー元のシートのオブジェクト).Value
・書式など含んだデータを別シートへコピーする場合
(コピー元シートのオブジェクト).Copy Destination:=(コピー先のシートのオブジェクト)
※「Destination:=」は省略可
値はValueプロパティ、データはCopyメソッドをそれぞれ使う事で簡単にコピーが可能になります。
構文もシンプルだから覚えやすそう!
次の項目から下記サンプルを使った実例でそれぞれ確認してみましょう!
役割 | シートの名称 |
---|---|
コピー元 | source |
コピー先 | target |
値のみ別シートへコピー
ここではセルと指定範囲の値を別シートへコピーしていきます。
セルの値を別シートへコピー
例)「source」シートのB4セルの値を「target」シートのA1セルへコピー
Sub セルの値を別シートへコピー()
Sheets("target").Range("A1").Value = Sheets("source").Range("B4").Value
End Sub
指定範囲の値を別シートへコピー
例)「source」シートの指定範囲(B4:D10)の値を「target」シートの指定範囲(A1:C7)へコピー
Sub 指定範囲の値を別シートへコピー()
Sheets("target").Range("A1:C7").Value = Sheets("source").Range("B4:D10").Value
End Sub
セルも指定範囲の値も簡単にコピーできました!
書式など除いた値だけコピーを行いたい場合、この方法はとても簡単でやりやすいです。
データを別シートへコピー
ここからはセル、指定範囲、行、列のそれぞれのデータを別シートへコピーしていきます。
セルのデータを別シートへコピー
例)「source」シートのB5セルのデータを「target」シートのA5セルへコピー
Sub セルのデータを別シートへコピー()
Sheets("Source").Range("B5").Copy Sheets("target").Range("A5")
End Sub
指定範囲のデータを別シートへコピー
例)「source」シートの指定範囲(B4:D10)のデータを「target」シートのA5セルを基準にしてコピー
Sub 指定範囲のデータを別シートへコピー()
Sheets("Source").Range("B4:D10").Copy Sheets("target").Range("A5")
End Sub
行のデータを別シートへコピー
例)「source」シートの4行目のデータを「target」シートの4行目へコピー
Sub 行のデータを別シートへコピー()
Sheets("Source").Rows(4).Copy Sheets("target").Rows(4)
End Sub
また行を次の様に指定すると連続した複数行や離れた複数行を別シートへコピーできます。
- 「source」シートの連続した4~5行目のデータを「target」シートの4行目を基準にしてコピー
- 「source」シートの離れた4行目と9行目のデータを「target」シートの8行目を基準にしてコピー
Sub 複数行のデータを別シートへコピー()
'連続した複数行のコピー
Sheets("Source").Rows("4:5").Copy Sheets("target").Rows(4)
'離れた複数行のコピー
Sheets("Source").Range("4:4,9:9").Copy Sheets("target").Rows(8)
End Sub
複数の行を指定する場合Rowsは連続した行にしか使用できないので、離れた複数行を指定する時はRangeを使用します。
列のデータを別シートへコピー
例)「source」シートのB列のデータを「target」シートのD列へコピー
Sub 列のデータを別シートへコピー()
Sheets("Source").Columns("B").Copy Sheets("target").Columns("D")
End Sub
行と同様に列も連続した複数列や離れた列を指定して別シートへデータをコピーできます。
- 「source」シートの連続したB~C列のデータを「target」シートのF列を基準にしてコピー
- 「source」シートの離れたB列とD~E列のデータを「target」シートのI列を基準にしてコピー
Sub 複数列のデータを別シートへコピー()
'連続した列のコピー
Sheets("Source").Columns("B:C").Copy Sheets("target").Columns("F")
'離れた複数列のコピー
Sheets("Source").Range("B:B,D:E").Copy Sheets("target").Columns("I")
End Sub
行と同様にColumnsは連続した列にしか使用できないので離れた複数列を指定する場合はRangeを使用して指定します。
まとめ
以上で今回の解説を終了します。
Excel VBAでは値をValueプロパティ、データはCopyメソッドを使用する事で簡単に別シートへコピーできます。
Excel VBAを使用する事で手作業で行う手間や時間を削減でき効率良く作業を進められるのでぜひ試してみて下さい!