【VBA】別のエクセルファイルにシートをコピーしてみた

VBA Excel
この記事は約3分で読めます。

VBAを利用して別のエクセルにシートをコピーしてみました。

広告

1.別のエクセルにシートをコピーする

以下の内容をマクロに記載します。

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

今回は、hoge1.xlsx の「hoge1」というシートを、同じフォルダにある hoge2.xlsx にコピーします。

hoge1.xlsx 内は以下のように黄色塗りにしておき、サイズも hoge2.xlsx と比べ7KB大きくなるようにすることでコピー後の変化を分かりやすくしています。

実行前のフォルダとファイルの確認

1-1.スクリプトの解説

Dim Wb_hoge1, Wb_hoge2 As Workbook

Subプロシージャの説明は割愛しますが、まず2行目の「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")

3行目、4行目でそれぞれのエクセルファイルを開きます。

Wb_hoge1.Worksheets("hoge1").Range("A1:XFD1048576").Copy

5行目で hoge1.xlsx のシート「hoge1」をコピーし、

Wb_hoge2.Worksheets("hoge2").Range("A1:XFD1048576")

6行目で hoge2.xlsx のシート「hoge2」にペーストしています。

範囲は「Range(“A1:XFD1048576”)」とすることでシートのすべてのセルを指定します。

2.実行結果(別のエクセルにシートをコピーするマクロ)

hoge1.xlsx のシート「hoge1」の内容が hoge2.xlsx のシート「hoge2」にコピーされ、コピー元のファイルと同じく各セルが黄色塗となっていることが確認できます。

また、ファイルサイズもコピー元のサイズに変わったことも確認できます。

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