2.8.Создание меню
2.8.4. Меню с флажками



Меню можно создавать не только из кнопок, но и элементов, отмеченных флажками. Команда меню, помеченная флажком, создается ровно так же, как обычная команда, но дополнительно у нее надо установить значение свойства state, которое может принимать два значения — msoButtonDown и msoButtonUp — в зависимости от того, установлен флажок или снят. Код из листинга 2.6 демонстрирует, как такое меню может быть создано. Процеду­ра MenuBuilder конструирует выпадающее меню Colors, состоящее из трех команд: Red, Yellow и Green. Процедура DoToggLe реализует по­метку команды флажком при ее выборе, причем помечается только послед­няя такая команда. Процедура MenuKiller удаляет созданное меню.



 

Листинг 2.6. Меню с флажками

Sub MenuBuilder()

Dim cd As CommandBar

Dim cdMenu As CommandBarControl

Set cd = Application.CommandBars.Add(_

   Name:="Custom", _

   Position:=msoBarTop, _

                                    Temporary:=True)

Set cdMenu = cd.Controls.Add(Type:=msoControlPopup)

With cdMenu

With .Controls.Add(msoControlButton)

.Caption = "Red"

.OnAction = "DoToggle"

End With

With .Controls.Add(Type:=msoControlButton)

.Caption = "Yellow"

.OnAction = "DoToggle"

End With

With .Controls.Add(Type:=msoControlButton)

.Caption = "Green"

.OnAction = "DoToggle"

End With

.Caption = "Colors"

End With

cd.Visible = True

End Sub

 

Sub MenuKiller()

Application.CommandBars("Custom").Delete

End Sub

 

Sub DoToggle()

Dim btn As CommandBarButton

Dim btnPressed As CommandBarButton

Set btnPressed = Application.CommandBars.ActionControl

For Each btn In btnPressed.Parent.Controls

If btn.Index = btnPressed.Index Then

btn.State = msoButtonDown

Select Case btn.Caption

Case "Red"

   ActiveSheet.Cells.Interior.Color = vbRed

Case "Yellow"

   ActiveSheet.Cells.Interior.Color = vbYellow

Case "Green"

       ActiveSheet.Cells.Interior.Color = vbGreen

End Select

Else

btn.State = msoButtonUp

End If

Next

End Sub




  
ПОИСК
МОЯ КНОПКА
Контакты
МБОУ "Лицей им.Атякшева"

628260 г. Югорск, ул. Ленина 24,
ХМАО-Югра, Тюменская область
Телефон: 8 (34675)2-48-30
Факс: 8 (34675)2-48-30



89222596815 nady_er@mail.ru
Карта
sample map