We recommend using Visual Studio 2017
This documentation is archived and is not being maintained.

How to: Programmatically Save Workbooks

 

There are several ways to save a workbook. You can save a workbook without changing the path. If the workbook has not been saved before, you should save the workbook by specifying a path. Without an explicit path, Microsoft Office Excel saves the file in the current folder with the name it was given when it was created. You can also save a copy of the workbook without modifying the open workbook in memory.

Applies to: The information in this topic applies to document-level projects and VSTO add-in projects for Excel. For more information, see Features Available by Office Application and Project Type.

To save a workbook associated with a document-level customization

  1. Call the Save method of the ThisWorkbook class.

                this.Save();
    

To save the active workbook in a VSTO Add-in

  1. Call the Save method to save the active workbook. To use the following code example, run it in the ThisAddIn class in a VSTO Add-in project for Excel.

                this.Application.ActiveWorkbook.Save();
    

You can save the specified workbook to a new location or with a new name, optionally specifying a file format, a password, an access mode, and more.

System_CAPS_ICON_note.jpg Note


You might want to set the DisplayAlerts property to False before saving the workbook with a new path because saving in some formats requires interaction. Setting this property to False causes Excel to use all defaults.

To save a workbook associated with a document-level customization

  1. Call the SaveAs method of the ThisWorkbook class. To use the following code example, run it in the ThisWorkbook class.

                this.SaveAs(@"C:\Book1.xml", missing,
                    missing, missing, missing, missing, Excel.XlSaveAsAccessMode.xlNoChange,
                    missing, missing, missing, missing, missing);
    

To save the active workbook in a VSTO Add-in

  1. Call the SaveAs method to save the active workbook to a new path. To use the following code example, run it in the ThisAddIn class in a VSTO Add-in project for Excel.

                this.Application.ActiveWorkbook.SaveAs(@"C:\Test\Book1.xml", 
                    Excel.XlSaveAsAccessMode.xlNoChange);
    

You can save a copy of the workbook to a file without modifying the open workbook in memory. This is useful when you want to create a backup copy without modifying the location of the workbook.

To save a workbook associated with a document-level customization

  1. Call the SaveCopyAs method of the ThisWorkbook class. To use the following code example, run it in the ThisWorkbook class.

                this.SaveCopyAs(@"C:\Book1.xlsx");
    

To save the active workbook in a VSTO Add-in

  1. Call the SaveCopyAs method to save a copy of the active workbook. To use the following code example, run it in the ThisAddIn class in a VSTO Add-in project for Excel.

                this.Application.ActiveWorkbook.SaveCopyAs(@"C\Book1.xlsx");
    

Interactively canceling any of the methods that save or copy the workbook raises a run-time error in your code. For example, if your procedure calls the SaveAs method but does not disable prompts from Excel, and your user clicks Cancel when prompted, Excel raises a run-time error.

Working with Workbooks
Workbook Host Item
How to: Programmatically Close Workbooks
Programmatic Limitations of Host Items and Host Controls
Optional Parameters in Office Solutions
Host Items and Host Controls Overview

Show: