0

Hello,

This might be in the wrong place. My question pertains to MS Excel, and using Visual Basic for Applications (VBA).

We have a user that would like to hide one of her worksheets within a workbook. She would like the sheet to be securely hidden.

I found this piece of code:

Sub HideSheet()
    Sheets("Sheet2").Visible = xlVeryHidden
End Sub

and the sheet does disappear.

There are two problems:

1) I don't like the Macro warning. Hints that something might be up, and if they disable the macros, then this visibility thing does not work.

2) Anyone can go into the Visual Basic for Applications menu, and see all of the worksheets in broad daylight. They can highlight the hidden sheet, and go to the properties, and unhide it with their mouse. Data revealed.


I am going to discuss with the user the wisdom of trying to do this. If she wants to go ahead though, and do "security through obscurity", then that is her call. What I want to be sure of though is that there isn't any other way to place a password on the VBA menu, or perhaps prevent the sheets from displaying on the VBA menu.

If anyone has ideas, please let me know. I am not very proficient in VBA, so please spell out the steps taken.

Thanks,

Christian

2
Contributors
1
Reply
8
Views
13 Years
Discussion Span
Last Post by mnemtsas
0

Hello,

This might be in the wrong place. My question pertains to MS Excel, and using Visual Basic for Applications (VBA).

We have a user that would like to hide one of her worksheets within a workbook. She would like the sheet to be securely hidden.

I found this piece of code:

Sub HideSheet()
    Sheets("Sheet2").Visible = xlVeryHidden
End Sub

and the sheet does disappear.

There are two problems:

1) I don't like the Macro warning. Hints that something might be up, and if they disable the macros, then this visibility thing does not work.

2) Anyone can go into the Visual Basic for Applications menu, and see all of the worksheets in broad daylight. They can highlight the hidden sheet, and go to the properties, and unhide it with their mouse. Data revealed.


I am going to discuss with the user the wisdom of trying to do this. If she wants to go ahead though, and do "security through obscurity", then that is her call. What I want to be sure of though is that there isn't any other way to place a password on the VBA menu, or perhaps prevent the sheets from displaying on the VBA menu.

If anyone has ideas, please let me know. I am not very proficient in VBA, so please spell out the steps taken.

Thanks,

Christian

You cannot disable the macro warning with a macro. No way around it, after all if there was then there would be no point it being there.

Second question, you can password protect your vba project so even if someone does go the the vba menu they will not see the modules or worksheets. Look under Tools->VBA Project properties from the VBA window.

Thirdly the code you've written above only needs to be used once. Why not set the worksheet to xlVeryHidden before you distribute it? You don't need to hide it every time you open the file. Once you've set it to xlVeryHidden and saved the file it's 'very hidden' until someone else makes it visible from another bit of vba code.

Hope that helps.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.