The topic of "protecting" a spreadsheet receives a great deal of attention in
the Excel newsgroups. This document provides answers to some common questions.
Excel provides three primary ways to protect information in a spreadsheet:
NOTE: This document was written prior to the release of Excel 2007.
Worksheet Protection
Questions in this section deal with protecting the contents of cells and
objects on a worksheet.
How do I protect a worksheet?
Activate the worksheet to be protected, then choose Tools - Protection
- Protect Sheet. You will be asked to provide a password (optional). If
you do provide a password, that password will be required to unprotect the
worksheet.
I tried the procedure outlined above, and it doesn't let me change any
cells! I only want to protect some of the cells, not all of them.
Every cell has two key attributes: Locked and Hidden. By default, all cells
are locked, but they are not hidden. Furthermore, the Locked and Hidden
attributes come into play only when the worksheet is protected. In order to
allow a particular cell to be changed when the worksheet is protected, you
must unlock that cell.
How do I unlock a cell?
- Select the cell or cells that you want to unlock.
- Choose Format - Cells
- In the Format Cells dialog box, click the Protection tab
- Remove the checkmark from the Locked checkbox.
Remember: Locking or unlocking cells has no effect unless the worksheet is
protected.
How do I hide a cell?
- Select the cell or cells that you want to unlock.
- Choose Format - Cells
- In the Format Cells dialog box, click the Protection tab
- Add a checkmark to the Hidden checkbox.
Remember: Changing the Hidden attribute of a cell has no effect unless the
worksheet is protected.
I made some cells hidden and then protected the worksheet. But I can still
see them. What's wrong?
When a cell's Hidden attribute is set, the cell is still visible. However,
it's contents do not appear in the Formula bar. Making a cell Hidden is
usually done for cells that contain formulas. When a formula cell is Hidden
and the worksheet is protected, the user cannot view the formula.
I protected my worksheet, but now I can't even do simple things like sorting
a range. What's wrong?
Nothing is wrong. That's the way worksheet protection works. Unless you
use Excel 2002 or later.
How is worksheet protection different in Excel 2002 and later?
Excel 2002 and later provides you with a great deal more flexibility when protecting
worksheets. When you protect a worksheet using Excel 2002 or later, you are given a
number of options that let you specify what the user can do when the worksheet
is protected:
Why aren't these options available in earlier versions of Excel?
Good question. Only Microsoft knows for sure. The limitations of protected
worksheets have been known (and complained about) for a long time. For some
reason, Microsoft never got around to addressing this problem until Excel
2002.
Can I lock cells such that only specific users can modify them?
Yes, but it requires Excel 2002 or later.
How can I find out more about the protection options available in Excel
2002 or later?
Start with Excel's Help system. If you're a VBA programmer, you may be
interested in this
MSDN article that discusses the Protection object.
Can I set things up so my VBA macro can make changes to Locked cells on a
protected sheet?
Yes, you can write a macro that protects the worksheet, but still allows
changes via macro code. The trick is to protect the sheet with the
UserInterfaceOnly parameter. Here's an example:
ActiveSheet.Protect UserInterfaceOnly:=True
After this statement is executed, the worksheet is protected -- but your
VBA code will still be able to make changes to locked cells and perform other
operation that are not possible on a protected worksheet.
If I protect my worksheet with a password, is it really secure?
No. Don't confuse protection with security. Worksheet protection is not a
security feature. Fact is, Excel uses a very simple encryption system
for worksheet protection. When you protect a worksheet with a password, that
password -- as well as many others -- can be used to unprotect the worksheet.
Consequently, it's very easy to "break" a password-protected worksheet.
Worksheet protection is not really intended to prevent people from
accessing data in a worksheet. If someone really wants to get your data, they
can. If you really need to keep your data secure, Excel is not the best
platform to use.
So are you saying that protecting a worksheet is pointless?
Not at all. Protecting a worksheet is useful for preventing accidental
erasure of formulas. A common example is a template that contains input cells
and formulas that calculate a result. Typically, the formula cells would be
Locked (and maybe Hidden) the input cells would be Unlocked, and the worksheet
would be protected. This helps ensure that a novice user will not accidentally
delete a formula.
Are there any other reasons to protect a worksheet?
Protecting a worksheet can also facilitate data entry. When a worksheet is
locked, you can use the Tab key to move among the Unlocked cells. Pressing Tab
moves to the next Unlocked cell. Locked cells are skipped over.
OK, I protected my worksheet with a password. Now I can't remember the
password I used.
First, keep in mind that password are case-sensitive. If you entered the
password as xyzzy, it won't be unprotected if you enter XYZZY.
Here's a link to a VBA procedure that may be able to
derive a password to unprotect the worksheet. This procedure has been around for a long time, and is widely available -- so I don't have any qualms about
reproducing it here. The original author is not known.
If that fails, you can try one of the commercial password-breaking programs. I haven't tried any of them, so I have no recommendations.
How can I hide a worksheet so it can't be unhidden?
You can designate a sheet as "very hidden." This will keep the average user
from viewing the sheet. To make a sheet very hidden, use a VBA statement such
as:
Sheets("Sheet1").Visible = xlVeryHidden
A "very hidden" sheet will not appear in the list of hidden sheets, which
appears when the user selects Format - Sheet - Unhide.
Unhiding this sheet, however, is a trivial task for anyone who knows VBA.
Can I prevent someone from copying the cells in my worksheet and pasting
them to a new worksheet?
Probably not. If someone really wants to copy data from your worksheet,
they can find a way.
Workbook Protection
Questions in this section deal with protecting workbooks.
What types of workbook protection are available?
Excel provides three ways to protect a workbook:
- Require a password to open the workbook
- Prevent users from adding sheets, deleting sheets, hiding sheets, and
unhiding sheets
- Prevent users from changing the size or position of windows
How can I save a workbook so a password is required to open it?
Choose File - Save As. In the Save As dialog box, click the
Tools button and choose General Options to display the Save
Options dialog box, in which you can specify a password to open the file. If
you're using Excel 2002, you can click the Advanced button to specify
encryption options (for additional security). Note: The exact procedure varies
slightly if you're using an older version of Excel. Consult Excel's Help for
more information.
The Save Options dialog box (described above) also has a "Password to
modify" field. What's that for?
If you enter a password in this field, the user must enter the password in
order to overwrite the file after making changes to it. If the password is not
provided, the user can save the file, but he/she must provide a different file
name.
If I require a password to open my workbook, is it secure?
It depends on the version of Excel. Password-cracking products exist. These
products typically work very well with versions prior to Excel 97. But for
Excel 97 and later, they typically rely on "brute force" methods. Therefore,
you can improve the security of your file by using a long string of random
characters as your password.
How can I prevent a user for adding or deleting sheets?
You need to protect the workbook's structure. Select Tools - Protection
- Protect Workbook. In the Protect Workbook dialog box, make sure that
the Structure checkbox is checked. If you specify a password, that password
will be required to unprotect the workbook.
When a workbook's structure is protected, the user may not:
- Add a sheet
- Delete a sheet
- Hide a sheet
- Unhide a sheet
- Rename a sheet
- Move a sheet
How can I distribute a workbook such that it can't be copied?
You can't.
VB Project Protection
How can I prevent others from viewing or changing my VBA code?
If you use Excel 97 or later... Activate the VB Editor and select your
project in the Projects window. Then choose Tools - xxxx Properties
(where xxxx corresponds to your Project name). In the Project Properties
dialog box, click the Protection tab. Place a checkmark next to Lock project
for viewing, and enter a password (twice). Click OK, then save your
file. When the file is closed and then re-opened, a password will be required
to view or modify the code.
Is my add-in secure?
The type of VB Project protection used in Excel 97 and later is much more
secure than in previous versions. However, several commercial
password-cracking programs are available. These products seem to use "brute
force" methods that rely on dictionaries of common passwords. Therefore, you
can improve the security of your file by using a long string of random
characters as your password.
Can I write VBA code to protect or unprotect my VB Project?
No. The VBE object model has no provisions for this -- presumably an
attempt to thwart password-cracking programs. It may be possible to use the
SendKeys statement, but it's not completely reliable.