Further to Barry's answer use this code between his suggested opening / closing lines :
On Error Resume Next
For Each wksht In ActiveWorkbook.Worksheets
If Not wksht.Name = "TOC" Then Sheets(wksht.Name).Visible = False
To show sheets again make .Visible=False.
For extra security you could use .Visible=xlVeryHidden. This would stop the sheets being listed in the Format > Sheet > Unhide dialog. Just stops users not savvy enough to know better poking their noses into bits they're not supposed to.