【VBA】異なるエクセルファイルにシートの内容をコピーしてみた

VBA VBA

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]にコピーされ、各セルが黄色くなり数字が入力されています。

また、ファイルサイズも変わっていることも確認できます。

シートコピーマクロの実行結果
タイトルとURLをコピーしました