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

Функции для работы с панелями инструментов 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

Вложения:

Комментарии

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Юрий, этот макрос предназначен для создания панели инструментов, а не для вывода кнопок на форме.
На форме всё проще: добавляете кнопку, назначаете кнопке картинку (через свойство Picture, - выбираете графический файл), назначаете этой кнопке макрос.
А картинку «бинокль» проще найти в интернете, чем извлекать из встроенных иконок по FaceID

Я имел ввиду на форме расположить например иконку (№564- Бинокль) для вызова последующей формы

я имел в виду использовать иконку на форме. например бИНОКЛЬ(564). По клик на иконку будет открываться форма "Поиск"

Юрий, это был вопрос?
FaceId - это число (или свойство объекта CommandBarControl)
А теперь перечитайте свой вопрос, и попробуйте уловить в нём смысл...

Добрый день. можно использовать на форме FaceId для открытия userform.

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

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
              _      __   __  _____   _             
_ __ ___ | |__ \ \ / / |___ | | |__ _ __
| '_ ` _ \ | '_ \ \ V / / / | '_ \ | '_ \
| | | | | | | | | | | | / / | |_) | | |_) |
|_| |_| |_| |_| |_| |_| /_/ |_.__/ | .__/
|_|
Введите код, изображенный в стиле ASCII-арт.

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.