SaveCopyAsメソッド
VBAでブックのコピーを保存するにはSaveCopyAsメソッドを使用します。
構文
Object.SaveCopyAs (FileName)
| Object | Workbookオブジェクトを表す変数です。 |
| FileName | 指定するファイル名です。 |
SaveAsとの違い
ファイルを保存する方法にSaveAsメソッドがあります。似ていますが機能は違います。
元のファイルに変更を加えた場合…
SaveAsメソッド
・元ファイルを保存しておき、新しく作成したファイルを操作する。
・実行後の変更は元ファイルに反映されない。
SaveCopyAsメソッド
・実行時点のファイルをコピーして残し、元のファイルを操作する。
・実行後の変更が元ファイルに反映される。
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を実行した時点でコピーが作成されたことがわかりました。



コメント