VBAを利用して別のエクセルにシートの内容をコピーする方法をまとめてみました。
別のエクセルにシートの内容をコピーする
以下の内容をマクロに記載します。
Sub hogehoge()
Dim Wb_hoge1, Wb_hoge2 As Workbook
Set Wb_hoge1 = Workbooks.Open("C:\hogehoge\hoge1.xlsx")
Set Wb_hoge2 = Workbooks.Open("C:\hogehoge\hoge2.xlsx")
Wb_hoge1.Worksheets("hoge1").Range("A1:XFD1048576").Copy Wb_hoge2.Worksheets("hoge2").Range("A1:XFD1048576")
End Sub
上記の内容では、「C:\hogehoge\」フォルダ配下にある[hoge1.xlsx]内にある値を、同じフォルダ配下にある[hoge2.xlsx]にコピーします。
コピー範囲は [特定のシート内のすべての内容] です。
今回は[hoge1.xlsx]内は以下のように黄色塗りで値を入力し、サイズも[hoge2.xlsx]と比べ7KB大きくなるようにしています。
スクリプトの解説
Subプロシージャの説明は割愛しますが、まず2行目の「Dim Wb_hoge1, Wb_hoge2 As Workbook」で変数を定義します。
3行目、4行目でそれぞれのエクセルファイルを開きます。
5行目で[hoge1.xlsx]のシート[hoge1]をコピーして、[hoge2.xlsx]のシート[hoge2]にペーストしています。
範囲は「Range(“A1:XFD1048576”)」とすることでシートのすべてのセルを指定します。
実行結果
[hoge1.xlsx]のシート[hoge1]の内容が[hoge2.xlsx]のシート[hoge2]にコピーされ、各セルが黄色くなり数字が入力されています。
また、ファイルサイズも変わっていることも確認できます。