オーロラさんの勉強帳

IT企業勤務。データベース、Excel、Excel VBA、ネットワーク、LinuxなどIT関連のことを主に書いていきます。少しでもお役に立てたら幸いです。

【Excel VBA エキスパート ベーシック】Save・SaveAsメソッド ブックを保存する(VBA入門 35)

ブックの保存について

ブックの保存には、「上書き保存」と「名前を付けて保存」の2種類があります。
「上書き保存」はすでに保存済みのブックに対して、名前を変更せずに編集内容を保存します。
「名前を付けて保存」は新規ブックを初めて保存するときや、すでに保存しているブックを別名で保存するときに使います。

上書き保存/Saveメソッド

Saveメソッドは、ブックを「上書き保存」します。


サンプルコード1
現在アクティブなブックを上書き保存します。アクティブブックがまだ一度も保存されていない場合は、カレントディレクトリに「Book1」「Book2」などの名前で保存れます。

Sub sampleSave()
    ActiveWorkbook.Save
End Sub


サンプルコード2
ただ、ブックを開いて保存するだけのコードです。
Aplication.GetOpenFilenameでオープンするブックをダイアログボックスで指定し、変数「fName」に開くブックのフルパスを代入。
fNameに対して、Openでそのブックを開きます。その後にDir(fName)でブック名だけを取り出し、Workbooks(ブック名).Saveで該当のブックを保存しています。

Sub sampleSave2()

    Dim fName As String
    fName = Application.GetOpenFilename("Excelブック,*.xlsx")
    Workbooks.Open fName

    Workbooks(Dir(fName)).Save

End Sub

名前を付けて保存/SaveAsメソッド

SaveAsメソッドは、「名前を付けて保存」します。


サンプルコード1
新しくブックを追加し、そのブックを「Test.xlsx」という名前でDドライブ直下に別名保存します。

Sub sampleSaveAs()
    Workbooks.Add
    ActiveWorkbook.SaveAs Filename:="D:\Test.xlsx"
End Sub