Protecting worksheets in Excel is a great way to prevent accidental edits and secure sensitive formulas. However, there are times when you need to unprotect a sheet, especially during macro-based automation quickly. In such cases, using VBA (Visual Basic for Applications) is your best friend.
In this article, we’ll walk through how to unprotect active worksheet using macros, including how to handle password-protected sheets.
Key Takeaways:
- Macros Save Time: Automating the unprotection of a worksheet with VBA helps eliminate repetitive manual steps and enhances efficiency, especially in large workbooks.
- Password Handling in VBA: You can embed the sheet’s password directly into the macro, or use an input prompt to allow secure access without exposing the password in the code.
- Flexible Sheet Management: Macros can be written to unprotect a single active sheet or loop through and unlock all sheets in a workbook simultaneously.
- Temporary Unprotection: VBA allows you to unprotect a sheet, perform specific actions (like data updates or formatting), and then re-protect it in the same macro—ideal for secure automation.
- Security Best Practices: Protect your VBA code itself with a password and add comments and version tracking to ensure maintainability and prevent unauthorized editing.
Table of Contents
Overview
What does it do?
Unprotect active worksheet using macro.
Copy Source Code:
Sub UnprotectActiveWorksheet() Dim pword As String 'Get the password from the user pword = InputBox("Enter a Password to Unprotect the Worksheet") 'Unprotect the Active Worksheet ActiveSheet.Unprotect pword End Sub
Final Result:
Unprotect Active Worksheet Using Macro In Excel
This is our worksheet; it is locked at the moment.
STEP 1: Go to Developer > Code > Visual Basic
STEP 2: Paste in your code and Select Save. Close the window afterwards.
STEP 3: Let us test it out!
Open the protected sheet. Go to Developer > Code > Macros
Make sure your macro is selected. Click Run.
Type in the password to unlock the sheet. Click OK.
Now your sheet is now unprotected! We can now try editing the sheet.
Understanding Sheet Protection
Reasons Why Sheets are Protected in Excel
In Excel, protecting sheets is like placing a shield around your precious data, preventing unwanted alterations. This protection is typically applied when you’ve crafted a masterpiece of a report or a dashboard teeming with intricate calculations. Your goal? To ensure that users, who might be your colleagues or even your boss, can’t unintentionally edit or delete something vital. It’s all about keeping the integrity of your spreadsheets intact while allowing flexibility where needed.
Limitations and Considerations When Sheets Are Locked
When sheets are locked in Excel, they become a fortress of sorts, keeping data safe but also placing some restrictions on how you can interact with them. For starters, most edits are off the table; that includes writing in cells, making structural changes, and altering the layout. However, not everything is locked down tight. You can decide to keep certain operations live, like sorting data or formatting cells, which offers a happy medium between security and usability.
Bear in mind that these limitations only come into effect once the sheet is officially protected. If you don’t activate that protection, it’s like having a security system but not turning it on – everything remains accessible and editable. Plus, Excel’s version matters too. For example, what takes mere seconds in older versions might be sluggish in newer ones, so managing larger workbooks with multiple sheets could require a healthy dose of patience.
.
Best Practices for Using VBA Macros Responsibly
Securing Your Macros from Unauthorized Use
Securing your VBA macros from unauthorized tinkering is akin to putting a virtual guard dog in your code, and it’s crucial for ensuring your macro only does its magic for the right people. To button up your macro security, you might consider using a password in the VBAProject Properties, which puts a padlock on the project, restricting others from peeking at your code or making any alterations without the proper credentials.
Managing and Documenting Code Changes for Future Users
Imagine your VBA macros as a well-trodden path through a forest; each user leaves their footprints – code changes, tweaks here, and adjustments there. To avoid the path becoming a bewildering maze for future travelers, it’s essential to manage and document those changes meticulously.
Think of it as leaving a breadcrumb trail in your code, where each crumb is a comment explaining why a change was made. This makes it a breeze for the next person to understand what was done and why. Plus, if issues arise down the line, you’ve got a map to trace your steps back to where things might have gone awry.
And don’t forget version control; it’s like having a series of photos of the path over time. Users can see how it’s evolved and revert to previous states if necessary. Whether you’re using a sophisticated system like Git or a simple shared drive setup, keeping a well-documented history of your macro is a gift to anyone who may inherit your code.
Focus on these elements to keep your VBA code understandable and user-friendly:
- Comment regularly and meaningfully: Use ‘single-quote’ marks in VBA to add context to your code lines.
- Version history tracking: Add a simple header at the top of your macro with the date, author, and a summary of changes each time someone makes an update.
- Use clear variable names: Make your code self-explanatory to an extent by choosing variable names that describe their use.
- Create a user guide: Offer a helping hand by crafting a separate document or adding a readme file that guides users through the macro’s purpose and workings.
Frequently Asked Questions
How to unprotect active worksheet using macro?
To create a macro to unprotect a worksheet, press ALT + F11
to open the VBA editor. In the code window, enter:
Sub UnprotectSheet() ActiveSheet.Unprotect Password:="YourPassword" End Sub
Replace "YourPassword"
with the actual password. Run the macro to unprotect the active sheet automatically.
Can I use a macro to unprotect multiple sheets at once?
Yes, you can. Use a loop to unprotect multiple sheets by adding this code:
Sub UnprotectAllSheets() Dim ws As Worksheet For Each ws In ThisWorkbook.Sheets ws.Unprotect Password:="YourPassword" Next ws End Sub
This will unprotect all sheets in the workbook at once using the specified password.
Is there a way to temporarily unprotect a sheet and then protect it again with a macro?
Yes, you can unprotect the sheet, perform actions, and then re-protect it in a single macro. Use code like this:
Sub TemporaryUnprotect() ActiveSheet.Unprotect Password:="YourPassword" ' Add actions to perform on unprotected sheet here ActiveSheet.Protect Password:="YourPassword" End Sub
This temporarily unlocks the sheet for any edits or actions, then re-locks it.
Is it safe to store passwords inside the macro code?
While storing passwords in code is convenient, it poses a security risk if the workbook is shared. For safer handling, use InputBox to prompt users for passwords, or protect your VBA project using the VBA editor’s password option.
What happens if I enter the wrong password in a macro prompt?
If you’re using InputBox to collect passwords, incorrect entries can trigger runtime errors. Use On Error handling to catch this and show a message like “Incorrect password” instead of crashing the macro.

Bryan
Bryan Hong is an IT Software Developer for more than 10 years and has the following certifications: Microsoft Certified Professional Developer (MCPD): Web Developer, Microsoft Certified Technology Specialist (MCTS): Windows Applications, Microsoft Certified Systems Engineer (MCSE) and Microsoft Certified Systems Administrator (MCSA).
He is also an Amazon #1 bestselling author of 4 Microsoft Excel books and a teacher of Microsoft Excel & Office at the MyExecelOnline Academy Online Course.