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 application-level projects for Excel 2013 and Excel 2010. For more information, see Features Available by Office Application and Project Type.

Saving a Workbook Without Changing the Path

To save a workbook associated with a document-level customization

  • Call the Save method of the ThisWorkbook class.

    Me.Save()
    
    this.Save();
    

To save the active workbook in an application-level add-in

  • Call the Save method to save the active workbook. To use the following code example, run it in the ThisAddIn class in an application-level project for Excel.

    Me.Application.ActiveWorkbook.Save()
    
    this.Application.ActiveWorkbook.Save();
    

Saving a Workbook with a New Path

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.

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

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

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

To save the active workbook in an application-level add-in

  • 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 an application-level project for Excel.

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

Saving a Copy of the Workbook

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

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

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

To save the active workbook in an application-level add-in

  • 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 an application-level project for Excel.

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

Robust Programming

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.

See Also

Tasks

How to: Programmatically Close Workbooks

Concepts

Working with Workbooks

Workbook Host Item

Programmatic Limitations of Host Items and Host Controls

Optional Parameters in Office Solutions

Host Items and Host Controls Overview