VBA エクセルブックを保存する方法 Save SaveAs

EXCEL VBAを利用して、EXCELのファイルを保存する方法を紹介します。
上書き保存(Save)、名前を付けて保存(SaveAs)、ダイアログを利用した保存の3パターンを紹介していこうと思います。

上書き保存をする方法 Save

既に存在するエクセルブックの保存をしたい場合は、上書き保存をしていきます。
その場合は、Saveメソッドを利用しましょう。

任意のエクセルブック.Save

 

実際に例を見てみましょう。
既に存在するエクセルブック「D:\vba\a.xlsx」に対して上書き保存していきます。

Private Sub cmdSave_Click()
    '上書き保存
    Workbooks.Open ("D:\vba\a.xlsx")
    Workbooks("a.xlsx").Sheets("Sheet1").Cells(4, 3).Value = "変更しました。"
    Workbooks("a.xlsx").Save
End Sub

解説
3行目:「D:\vba\a.xlsx」ファイルを開く
4行目:セルの値を変更
5行目:エクセルを上書き

結果
指定したエクセルブックを上書き保存することができました。

 

名前を付けて保存する方法 SaveAs

エクセルブックを名前を付けて保存したい場合は、SaveAsを利用しましょう。
使用方法を紹介してきます。

任意のエクセルブック.SaveAs("フルパス")

 

例を見てみましょう。

Private Sub cmdSave_Click()
    '名前を付けて保存
    Workbooks.Open ("D:\vba\a.xlsx")
    Workbooks("a.xlsx").Sheets("Sheet1").Cells(4, 3).Value = "変更しました。"
    Workbooks("a.xlsx").SaveAs ("D:\vba\save.xlsx")
End Sub

名前が変更されて登録されたことが確認できました。

 

ダイアログを表示して保存する方法

名前を付けて保存する時に、ダイアログを表示する方法を紹介します。
ダイアログを表示することで保存する場所を選択することができます。
ダイアログを表示させるには「Application.GetSaveAsFilename」を利用しましょう。

Private Sub cmdSave_Click()

    'ファイルを開く
    Workbooks.Open ("D:\vba\a.xlsx")
    Workbooks("a.xlsx").Sheets("Sheet1").Cells(4, 3).Value = "変更しました。"

    'ダイアログを選択して保存
    Dim str_wbnm As String
    str_wbnm = Application.GetSaveAsFilename(InitialFileName:="default.xlsx", FileFilter:="Excel,*.xlsx,マクロ,*.xlsm")

    If str_wbnm <> "False" Then
        Workbooks("a.xlsx").SaveAs (str_wbnm)
    End If

End Sub

 

解説
9行目:Application.GetSaveAsFilename(InitialFileName:="default.xlsx", FileFilter:="Excel,*.xlsx")
1つ目の引数:デフォルトのファイル名を設定できます。今回は「default.xlsx」と指定しました。(下記画像のファイル名の部分です。)
2つ目の引数:ファイルの拡張子を選択できるようにします。今回は「.xlsx」「.xlsm」ファイルを指定しました。(下記画像のファイルの種類の部分の設定です。)

結果

ダイアログを表示して、保存先を選択することができました。

 

まとめ

今回は、エクセルブックの保存方法を、上書き保存、名前を付けて保存、ダイアログを表示して保存と3パターンを紹介しました。
マクロを使用する際にかなり使用するので、それぞれ、使用する場面を見極めて使用してみてください。

 

 

EXCEL VBAの記事一覧

おすすめの記事