関数・メソッド

ブックをコピーして保存する【SaveCopyAsメソッド】【ExcelVBA】

SaveCopyAsメソッド

VBAでブックのコピーを保存するにはSaveCopyAsメソッドを使用します。
構文
Object.SaveCopyAs (FileName)

ObjectWorkbookオブジェクトを表す変数です。
FileName指定するファイル名です。

 

SaveAsとの違い

ファイルを保存する方法にSaveAsメソッドがあります。似ていますが機能は違います。

元のファイルに変更を加えた場合…
SaveAsメソッド
・元ファイルを保存しておき、新しく作成したファイルを操作する。
実行後の変更は元ファイルに反映されない
SaveCopyAsメソッド
・実行時点のファイルをコピーして残し、元のファイルを操作する。
実行後の変更が元ファイルに反映される。

 

コピーを保存する流れがわかるサンプルコード

'事前に「Test」ファイルを作っておく
Public Sub Test()
    Range("A1") = "データ1"
    ThisWorkbook.SaveAs "C:\excelsample\Test"
End Sub
'「Test」に入力するコード
Public Sub Sample()
    Dim wb As Workbook
    Dim FilePath As String

    Set wb = ThisWorkbook
    FilePath = wb.Path & "\Test"

    Range("A1") = "データ2"     'セルA1に「データ2」を入力
    '■ファイル名を「Copy.xlsm」にしてコピーを保存
    wb.SaveCopyAs FilePath & "Copy.xlsm"
    Range("A1") = "データ3"     'セルA1に「データ3」を入力
End Sub

 

注意点

  • “Sample”を実行すると…
    元のファイル「Test」に「データ3」、「TestCopy」に「データ2」が入力されています。
    ※SaveCopyAsを実行した時点でコピーが作成されたことがわかりました。

関連記事

コメント

タイトルとURLをコピーしました