OfficeType

VBA~ワークブックを保存しよう~Excel

上書き保存

ワークブックを上書き保存する時はWorkbook.Saveメソッドを使います。下のコードを実行するとサンプル.xlsxというワークブックが上書き保存されます。

Sub test1()

Workbooks("サンプル.xlsx").Save

End Sub

名前を付けて保存

ワークブックを名前を付けて保存する時はWorkbook.SaveAsメソッドを使います。下のコードを実行するとサンプル.xlsxというワークブックをDドライブにSAMPLE.xlsxというワークブックとして保存します。

Sub test2()

Workbooks("サンプル.xlsx").SaveAs ("D:\SAMPLE.xlsx")

End Sub

ダイアログボックスで保存場所と保存名を指定する

上のコードではコード上で保存場所と保存名を指定していましたが、Application.GetSaveAsFilenameメソッドを使うとダイアログボックスを表示しユーザーが保存場所と保存名を決めることができます。下のコードはbookpath = Application.GetSaveAsFilenameを実行すると名前を付けて保存ダイアログボックスが表示されます。ここでキャンセルを押すと"FALSE"を返すのでbookpathという変数に"FALSE"が格納されIf文の条件式bookpath = "False"を満たすのでExit Subを実行し保存せずにコードを終了します。ダイアログボックスでユーザーが保存場所を選択し、ブック名を入力し保存をクリックすると、その時点では保存されずbookpathという変数に選択した保存場所とファイル名のフルパスが格納されます。bookpathにフルパスが格納されているのでIf文の条件式bookpath = "False"を満たさないのでIfとEnd Ifの間に書かれたコードは実行しないのでExit Subは実行せずに最後に書かれているWorkbooks("サンプル.xlsx").SaveAs bookpathを実行し、ここで選択した保存場所に入力したブック名でワークブックが保存されます。

Sub test3()

Dim bookpath As String
bookpath = Application.GetSaveAsFilename

If bookpath = "False" Then
Exit Sub
End If

Workbooks("サンプル.xlsx").SaveAs bookpath

End Sub