ブックを名前を付けて保存

広告

別の名前を付けてブックを保存します。Workbookオブジェクトに対して「SaveAs」メソッドを使います。

Dim book1 As Workbook

Set book1 = Workbooks("VBAsample.xls")

book1.SaveAs Filename:="C:¥excelsample¥OtherFile.xls"

保存する名前は「Filename」引数で指定します。パスを指定しない場合にはカレントディレクトリに保存されます。

保存しようとした名前と同じ名前のブックが開いていると、その時点でエラーとなります。また開いていなくても同じファイルが既に存在している場合には上書き保存するかどうかの確認ダイアログが表示されます。ダイアログで「いいえ」又は「キャンセル」を選択するとエラーとなります。

「SaveAs」メソッドには他にも多くの引数が用意されていますので次のページ以降で順次見ていきます。

サンプルプログラム

では簡単なサンプルで試してみましょう。

testbooknew6.bas

Sub テスト()
    
    Dim book1 As Workbook

    Workbooks.Open filename:="C:¥excelsample¥2005年成績.xls"
    ActiveSheet.Range("A1").Value = "保存"

    Set book1 = ActiveWorkbook
    book1.SaveAs filename:="C:¥excelsample¥2005年成績(保存).xls"
    book1.Close
    
End Sub

上記マクロを実行すると、「2005年成績.xls」と言うブックを開いた後でセルA1に文字をセットした後、「2005年成績(保存).xls」という別の名前でブックを保存します。「2005年成績(保存).xls」というブックが作成されているのを確認し、開いてみます。

名前を付けて保存

変更した内容が保存されていることが確認できます。(「2005年成績(保存).xls」というブックが存在しない状態で試して下さい)。

( Written by Tatsuo Ikura )