EXCEL作成したファイルは、SaveAsメゾットを利用してEXCELファイル(ブック)を保存する事が出来ます。また、ブックを保存(SaveAs)する際に、引数(FileFormat)を指定する事により、CSVファイル・テキストファイルなども保存する事が出来ます。また、GetSaveAsFilenameを利用して保存先・ファイル名などを選択して保存する事もできます。それでは、EXCEL VBAでのブック保存に関する説明を順番に致します。
●EXCEL VBA ブックを閉じる
(ブック全てを保存して閉じる・変更されていれば保存・保存しないで閉じる)については、下記のURLを参照して下さい。
https://akira55.com/workbookclose
オブジェクト.SaveAs(Filename,FileFormat)
記述例:ActiveWorkbook.SaveAs Filename:=”C:\Hozon\Test”
説明 :現在開いているワークブックをCドライブの”Hozon”フォルダーの中に「Test」の名前で保存します。
拡張子 | 定数 | 内容 |
---|---|---|
.xlsx | xlOpenXMLWorkbook | Excelブック |
.xlsm | xlOpenXMLWorkbookMacroEnabled | Excel マクロ有効ブック |
.csv | xlCSV | CSVファイル |
.txt | xlCurrentPlatformText | テキストファイル |
.xls | xlWorkbookNormal | Excel 97-2003 ブック |
Sub SaveAs01() Dim Fname As String Fname = InputBox("ファイル名を入力して下さい。") '保存するファイル名を入力します。 ActiveWorkbook.SaveAs Filename:="C:\Hozon\" & Fname '入力されたファイル名で保存します。 End Sub
Sub SaveAs02() Dim SaveOnOff As Integer SaveOnOff = MsgBox("ブックの上書き保存を行いますか?", vbYesNo + vbQuestion, "確認") '上書き保存の確認メッセージが表示されます。 If SaveOnOff = vbYes Then Application.DisplayAlerts = False '上書き保存する際に、警告メッセージを無視します。 ActiveWorkbook.Save 'アクティブブックの上書き保存を実行します。 Application.DisplayAlerts = True '警告メッセージの無視を解除します。 MsgBox "上書き保存を実行しました。" Else MsgBox "上書き保存をキャンセルしました。" End If End Sub
Sub SaveAs03() Dim CSV_Go As Integer CSV_Go = MsgBox("CSVファイルに出力しますか?", vbYesNo + vbQuestion, "確認") 'CSVファイルへの出力メッセージの表示。 If CSV_Go = vbYes Then Application.DisplayAlerts = False '上書き保存する際に、警告メッセージを無視します。 ActiveSheet.Copy '現在のアクティブシートを新規ブックに保存します。 ActiveWorkbook.SaveAs Filename:="C:\Hozon\text.csv", FileFormat:=xlCSV, Local:=True 'CSVファイルに保存します。 Application.DisplayAlerts = True '警告メッセージの無視を解除します。 MsgBox "CSVファイルを出力しました。" Else MsgBox "キャンセルしました。" End If End Sub
Sub SaveAs04() '保存先を選択して保存する。 Dim F_name As Variant Dim SaveOnOff As Integer SaveOnOff = MsgBox("名前を変えて別の場所に保存しますか?", vbYesNo + vbQuestion, "確認") '別の場所に保存するか確認メッセージが表示されます。 Application.DisplayAlerts = False '保存する際の警告メッセージを無視します。 If SaveOnOff = vbYes Then '(”はい”の場合は、ダイアログが表示されて場所を選択・ファイル名を入力して保存します。) Do F_name = Application.GetSaveAsFilename(FileFilter:="Excelファイル,*.xls*") '保存先を指定するダイアログを表示します。 Loop Until F_name <> False 'ファイル名が入力されたか? ActiveWorkbook.SaveAs Filename:=F_name 'EXCELファイルを保存します。 Else '(”いいえ”の場合は、そのまま上書き保存します。) ActiveWorkbook.Save 'アクティブブックの上書き保存を実行します。 MsgBox "上書き保存を実行しました。" End If Application.DisplayAlerts = True '警告メッセージの無視を解除します。 End Sub