VBA シートを別ブックにコピーする方法

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にしている)

 

まとめ

任意のシートを別のブックにコピーする方法を紹介しました。

実際の業務で使用することがあると思うので、サンプルソースをコピーして、是非利用してみてください。

 

EXCEL VBAの記事一覧

 

おすすめの記事