
VBAを利用して、EXCELシートを別ブックにコピーする方法を紹介していきます。
業務で利用したので、備忘録として残していきたいと思います。
また、Copyメソッドの使い方については、下記の別記事を参考にしてください。
それではサンプルソースを載せていきます。
サンプルソース
EXCELの「Sheet2」を別EXCEL「D:\コピー先エクセル.xlsx」の「Sheet1」の後ろにコピーをするという例です。
Private Sub btnCopy_Click()
'コピー先のエクセルを開く
Workbooks.Open ("D:\コピー先エクセル.xlsx")
'別エクセルにシートをコピーする
ThisWorkbook.Worksheets("Sheet2").Copy after:=Workbooks("コピー先エクセル.xlsx").Worksheets("Sheet1")
'コピーしたシートのインデックスを取得
Dim sht_index As Integer
sht_index = Workbooks("コピー先エクセル.xlsx").Worksheets("Sheet1").index + 1
'コピー先 シート名変更
Workbooks("コピー先エクセル.xlsx").Worksheets(sht_index).Name = "hironimo"
'メッセージオフ
Application.DisplayAlerts = False
'上書き保存
Workbooks("コピー先エクセル.xlsx").Save
'閉じる
Workbooks("コピー先エクセル.xlsx").Close
'メッセージオン
Application.DisplayAlerts = True
End Sub
解説
3-4行目 :コピー先のEXCELブックを開く。(コピーする際にコピー先のブックを開いておく必要ある)
6-7行目 :シートのコピー(copyメソッドの使い方は別記事で記載)
9-14行目 :コピーしたシートの名前を変更する。(シート名を変更しなくてよい場合は不要)
16-26行目:コピー先のブックを上書き保存して閉じる。(その際警告メッセージが出ないようメッセージをOFFにしている)
まとめ
任意のシートを別のブックにコピーする方法を紹介しました。
実際の業務で使用することがあると思うので、サンプルソースをコピーして、是非利用してみてください。