Check whether Excel file is Password protected

Posted by Torben Klein on Stack Overflow See other posts from Stack Overflow or by Torben Klein
Published on 2010-04-20T06:18:10Z Indexed on 2010/04/23 22:23 UTC
Read the original article Hit count: 277

Filed under:
|
|

I am trying to open an Excel (xlsm) file via VBA. It may or may not be protected with a (known) password. I am using this code:

On Error Resume Next
Workbooks.Open filename, Password:=user_entered_pw
opened = (Err.Number=0)
On Error Goto 0

Now, this works fine if the workbook has a password. But if it is unprotected, it can NOT be opened. Apparently this is a bug in XL2007 if there is also workbook structure protection active. (http://vbaadventures.blogspot.com/2009/01/possible-error-in-excel-2007.html). On old XL2003, supplying a password would open both unprotected and password protected file.

I tried:

Workbooks.Open filename, Password:=user_entered_pw
If (Err.Number <> 0) Then workbooks.open filename

This works for unprotected and protected file. However if the user enters a wrong password it runs into the second line and pops up the "enter password" prompt, which I do not want.

How to get around this?

© Stack Overflow or respective owner

Related posts about excel

Related posts about vba