How to: Programmatically protect workbooks

Applies to: yesVisual Studio noVisual Studio for Mac

Note

This article applies to Visual Studio 2017. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here

You can protect a Microsoft Office Excel workbook so that users cannot add or delete worksheets, and also unprotect the workbook programmatically. You can optionally specify a password, indicate whether you want the structure protected (so users cannot move sheets around), and indicate whether you want the workbook's windows protected.

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.

Protecting a workbook does not stop users from editing cells. To protect the data, you must protect the worksheets. For more information, see How to: Programmatically protect worksheets.

The following code examples use a variable to contain a password that is obtained from the user.

Protect a workbook that is part of a document-level customization

To protect a workbook

  1. Call the Protect method of the workbook and include a password. To use the following code example, run it in the ThisWorkbook class, not in a sheet class.

    this.Protect(getPasswordFromUser, missing, missing);
    
    Me.Protect(getPasswordFromUser)
    

To unprotect a workbook

  1. Call the Unprotect method, passing a password if it is required. To use the following code example, run it in the ThisWorkbook class, not in a sheet class.

    this.Unprotect(getPasswordFromUser);
    
    Me.Unprotect(getPasswordFromUser)
    

Protect a workbook by using an application-level Add-in

To protect a workbook

  1. Call the Protect method of the workbook and include a password. This code example uses the active workbook. To use this example, run the code from the ThisAddIn class in your project.

    this.Application.ActiveWorkbook.Protect(getPasswordFromUser);
    
    Me.Application.ActiveWorkbook.Unprotect(getPasswordFromUser)
    

To unprotect a workbook

  1. Call the Unprotect method of the active workbook, passing a password if it is required. To use this example, run the code from the ThisAddIn class in your project.

    this.Application.ActiveWorkbook.Unprotect(getPasswordFromUser);
    
    Me.Application.ActiveWorkbook.Protect(getPasswordFromUser)
    

See also