How to: Programmatically close workbooks

You can close the active workbook or you can specify a workbook to close.

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.

Close the active workbook

There are two procedures for closing the active workbook: one for document-level customizations and one for VSTO Add-ins.

To close the active workbook in a document-level customization

  1. Call the Close method to close the workbook associated with the customization. To use the following code example, run it in the Sheet1 class in a document-level project for Excel.

    Globals.ThisWorkbook.Close(false);
    
    Globals.ThisWorkbook.Close(SaveChanges:=False)
    

To close the active workbook in a VSTO Add-in

  1. Call the Close method to close 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.Close(false, missing, missing);
    
    Me.Application.ActiveWorkbook.Close(SaveChanges:=False)
    

Close a workbook that you specify by name

The way that you close a workbook that you specify by name is the same for VSTO Add-ins and document-level customizations.

To close a workbook that you specify by name

  1. Specify the workbook name as an argument to the Workbooks collection. The following code example assumes that a workbook named NewWorkbook is open in Excel.

    object fileName = "NewWorkbook.xlsx";
    Excel.Workbook workbook = this.Application.Workbooks.get_Item(fileName);
    workbook.Close(false);
    
    Me.Application.Workbooks("NewWorkbook.xlsx").Close(SaveChanges:=False)
    

See also