Как сделать то же самое для формы, я знаю, а тут что-то не соображу.
Делаю такой код:
- Код: Выделить всё
Sub AddVisibilityToolBar()
Dim msBtn As CommandBarButton
Dim wsList As Worksheet
'пересоздаем тулбар
On Error Resume Next
Application.CommandBars("VisibilityToolBar").Delete
On Error GoTo 0
Application.CommandBars.Add(Name:="VisibilityToolBar").Visible = True
With Application.CommandBars("VisibilityToolBar")
.Position = msoBarLeft
'заполняем тулбар кнопками с названиями листов
For Each wsList In Worksheets
With .Controls
Set msBtn = .Add(Type:=msoControlButton)
With msBtn
.Caption = wsList.Name
.Style = msoButtonWrapCaption
'если лист виден, кнопка нажата и наоборот.
.State = wsList.Visible
End With
End With
Next wsList
End With
End Sub
В итоге слева должна получиться панель с переключением видимости листов (вкл/выкл). Только вот не соображу, как мне тут в OnAction записать вызов процедуры с параметром.