【Excel VBA】別シートに値やデータをシンプルにコピーする方法

当ページのリンクには広告が含まれています。
スポンサーリンク

本記事では別シートへのデータをシンプルにコピーする方法について解説していきます。

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セルの値を「target」シートのA1セルへコピー

指定範囲の値を別シートへコピー

例)「source」シートの指定範囲(B4:D10)の値を「target」シートの指定範囲(A1:C7)へコピー

Sub 指定範囲の値を別シートへコピー()

    Sheets("target").Range("A1:C7").Value = Sheets("source").Range("B4:D10").Value

End Sub

実行結果

「source」シートの指定範囲(B4:D10)の値を「target」シートの指定範囲(A1:C7)へコピー
鳩野

セルも指定範囲の値も簡単にコピーできました!

書式など除いた値だけコピーを行いたい場合、この方法はとても簡単でやりやすいです。

スポンサーリンク

データを別シートへコピー

ここからはセル、指定範囲、行、列のそれぞれのデータを別シートへコピーしていきます。

セルのデータを別シートへコピー

例)「source」シートのB5セルのデータを「target」シートのA5セルへコピー

Sub セルのデータを別シートへコピー()

    Sheets("Source").Range("B5").Copy Sheets("target").Range("A5")

End Sub

実行結果

「source」シートのB5セルのデータを「target」シートのA5セルへコピー

指定範囲のデータを別シートへコピー

例)「source」シートの指定範囲(B4:D10)のデータを「target」シートのA5セルを基準にしてコピー

Sub 指定範囲のデータを別シートへコピー()

    Sheets("Source").Range("B4:D10").Copy Sheets("target").Range("A5")

End Sub

実行結果

「source」シートの指定範囲(B4:D10)のデータを「target」シートのA5セルを基準にしてコピー

行のデータを別シートへコピー

例)「source」シートの4行目のデータを「target」シート4行目へコピー

Sub 行のデータを別シートへコピー()

    Sheets("Source").Rows(4).Copy Sheets("target").Rows(4)

End Sub

実行結果

「source」シートの4行目のデータを「target」シートの4行目へコピー

また行を次の様に指定すると連続した複数行離れた複数行を別シートへコピーできます。

  • 「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列のデータを「target」シートのD列へコピー

行と同様に列も連続した複数列や離れた列を指定して別シートへデータをコピーできます。

  • 「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を使用する事で手作業で行う手間や時間を削減でき効率良く作業を進められるのでぜひ試してみて下さい!

スポンサーリンク

この記事が気に入ったら
フォローしてね!

目次