How to: Programmatically Protect Workbooks
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 application-level projects for Excel 2013 and Excel 2010. 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.
Protecting a Workbook That Is Part of a Document-Level Customization
To protect a workbook
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.
Me.Protect(getPasswordFromUser)
this.Protect(getPasswordFromUser, missing, missing);
To unprotect a workbook
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.
Me.Unprotect(getPasswordFromUser)
this.Unprotect(getPasswordFromUser);
Protecting a Workbook by Using an Application-Level Add-In
To protect a workbook
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.
Me.Application.ActiveWorkbook.Unprotect(getPasswordFromUser)
this.Application.ActiveWorkbook.Protect(getPasswordFromUser);
To unprotect a workbook
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.
Me.Application.ActiveWorkbook.Protect(getPasswordFromUser)
this.Application.ActiveWorkbook.Unprotect(getPasswordFromUser);
See Also
Tasks
How to: Programmatically Protect Worksheets
How to: Programmatically Hide Worksheets