mail mail

Работа с панелями инструментов в Excel 2003

Public Enum CONTROL_TYPES
    ct_BUTTON = msoControlButton
    ct_TEXTBOX = msoControlEdit
    ct_COMBOBOX = msoControlComboBox
    ct_DROPDOWN = msoControlDropdown
    ct_POPUP = msoControlPopup
End Enum


Function Add_Control(ByRef Comm_Bar, ByVal ControlType As CONTROL_TYPES, ByVal B_Face As Integer, _
                     ByVal On_Action As String, ByVal B_Caption As String, _
                     Optional ByVal Button_Style As MsoButtonStyle = msoButtonIcon, _
                     Optional ByVal Begin_Group As Boolean = False, _
                     Optional Tag As String = "") As CommandBarControl
    ' добавляет контролы в меню Comm_Bar
   On Error Resume Next
    Set Add_Control = Comm_Bar.Controls.Add(Type:=ControlType, Temporary:=True)
    With Add_Control
        If B_Face > 0 Then .FaceId = B_Face:
        .Tag = Tag: .OnAction = On_Action: .Caption = B_Caption: .BeginGroup = Begin_Group
        If ControlType = ct_BUTTON Then .Style = Button_Style
    End With
End Function

Function GetCommandBar(ByVal CommandBarName As String, Optional ByVal Clean As Boolean = False, _
                       Optional ByVal Position As MsoBarPosition = msoBarFloating) As CommandBar
    On Error Resume Next: Err.Clear
    Set GetCommandBar = Application.CommandBars(CommandBarName)
    If Err.Number Then
        Set GetCommandBar = Application.CommandBars.Add(CommandBarName, Position, False, True)
    End If
    If Clean Then
        For Each cbc In GetCommandBar.Controls: cbc.Delete: Next
    End If
    GetCommandBar.Visible = True
End Function

ВложениеРазмер
modCommandBars.bas1.6 КБ

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
3 + 9 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.