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