I have an Excel spreadsheet with three sheets. One of the sheets contains formulas for one of the other sheets.
Is there a programmatic way to hide the sheet which contains these formulas?
I have an Excel spreadsheet with three sheets. One of the sheets contains formulas for one of the other sheets.
Is there a programmatic way to hide the sheet which contains these formulas?
To hide from the UI, use Format > Sheet > Hide
To hide programatically, use the Visible
property of the Worksheet
object. If you do it programatically, you can set the sheet as "very hidden", which means it cannot be unhidden through the UI.
ActiveWorkbook.Sheets("Name").Visible = xlSheetVeryHidden
' or xlSheetHidden or xlSheetVisible
You can also set the Visible property through the properties pane for the worksheet in the VBA IDE (ALT+F11).
You can do this programmatically using a VBA macro. You can make the sheet hidden or very hidden:
Sub HideSheet()
Dim sheet As Worksheet
Set sheet = ActiveSheet
' this hides the sheet but users will be able
' to unhide it using the Excel UI
sheet.Visible = xlSheetHidden
' this hides the sheet so that it can only be made visible using VBA
sheet.Visible = xlSheetVeryHidden
End Sub
Just wanted to add a little more detail to the answers given. You can also use
sheet.Visible = False
to hide and
sheet.Visible = True
to unhide.
Source
This can be done in a single line, as long as the worksheet is active:
ActiveSheet.Visible = xlSheetHidden
However, you may not want to do this, especially if you use any "select" operations or you use any more ActiveSheet operations.