When we are dealing with confidential information or data we need to Protect Workbook if you want from the user to edit data, delete data, and move data in Excel VBA. If user wants to see data in workbook user should have password to view data in the workbook. We need to protect workbook at the end of the procedure once changes has done to the workbook using VBA. If you forgot the password, you cannot unprotect the workbook.
Why we need to Protect a Workbook using VBA?
When workbook has sensitive data to deal with confidential information or data we need to Protect Workbook in Excel VBA. You should protect your complete workbook then only authorized users can view or modify the data.
VBA Protect Workbook – Syntax
Here is the syntax to Protect workbook using VBA.
Workbooks(“Your Workbook Name”).Protect(
Where
Password: Its Optional argument. It specifies a case sensitive password for the workbook. If we want to protect workbook then you have to mention password argument, otherwise you can omit it. When you want to unprotect your protected workbook you must specify your password.
Structure: Its Optional parameter. The default value is False. If we mention it as True that means protect the workbook structure.
Windows: Its Optional parameter. The default value is False. If we mention it as True that means protect the workbook windows.
In the above syntax we are using ‘Protect’ method of workbook object to protect the workbook.
VBA Protect Workbook: Example 1
Please find the below example, It will show you how to protect the workbook.
Sub Protect_Sheet() Sheets("Sheet1").Protect "YourPassword", True, True End Sub
In the above example we are protecting the workbook by using ‘Protect’ method of Worksheet object in the worksheet named ‘Sheet1’. When working workbook code has password protected, if you want to do any changes in the code first you have to unprotect the password at the beginning of the procedure and at the end of the procedure you have to protect it again.
VBA Protect Workbook: Example 2
Here is the example to protect ActiveWorkbook with password.
Sub Protect_Sheet() ActiveWorkbook.Protect Password:="YourPassword", Structure:=True, Windows:=True End Sub
VBA Protect Workbook – Instructions
Please follow the below step by step instructions to execute the above mentioned VBA macros or codes:
- Open an Excel Workbook
- Press Alt+F11 to Open VBA Editor
- Insert a Module from Insert Menu
- Copy the above code for activating a range and Paste in the code window(VBA Editor)
- Save the file as macro enabled workbook
- Press ‘F5’ to run it or Keep Pressing ‘F8’ to debug the code line by line.
I have three macros on my employees time card
1. to clear the sheet
2. to save the template sheet to a new tab with the current end of work date
3. email the time card.
How can I protect the workbook with structure so that the sheets cannot be deleted while still using the macros. I can currently protect only the sheet