Может ли кто-нибудь показать список идентификаторов лица кнопки в Excel 2010 - PullRequest
8 голосов
/ 12 сентября 2011

Я хотел бы создать кнопку меню Costum, используя VBA, в моем файле Excel 2010, используя предопределенную кнопку Excel, которая использует идентификатор лица.В моем случае я хотел бы использовать значок «замок» и «обновить», но не знаю идентификатор лица для этого значка.Может ли кто-нибудь показать или указать мне список идентификаторов кнопок и лиц, используемых в Excel 2010?

Ответы [ 6 ]

10 голосов
/ 21 августа 2013

Следующая Sub BarOpen () работает с Excel 2010, скорее всего также со многими другими версиями, и генерирует на вкладке «Надстройки» пользовательскую временную панель инструментов с раскрывающимися списками для отображенияFaceID от 1 до 5020 в группах по 30 штук.

Option Explicit

Const APP_NAME = "FaceIDs (Browser)"

' The number of icons to be displayed in a set.
Const ICON_SET = 30

Sub BarOpen()
  Dim xBar As CommandBar
  Dim xBarPop As CommandBarPopup
  Dim bCreatedNew As Boolean
  Dim n As Integer, m As Integer
  Dim k As Integer

  On Error Resume Next
  ' Try to get a reference to the 'FaceID Browser' toolbar if it exists and delete it:
  Set xBar = CommandBars(APP_NAME)
  On Error GoTo 0
  If Not xBar Is Nothing Then
    xBar.Delete
    Set xBar = Nothing
  End If

  Set xBar = CommandBars.Add(Name:=APP_NAME, Temporary:=True) ', Position:=msoBarLeft
  With xBar
    .Visible = True
    '.Width = 80
    For k = 0 To 4 ' 5 dropdowns, each for about 1000 FaceIDs
      Set xBarPop = .Controls.Add(Type:=msoControlPopup) ', Before:=1
      With xBarPop
        .BeginGroup = True
        If k = 0 Then
          .Caption = "Face IDs " & 1 + 1000 * k & " ... "
        Else
          .Caption = 1 + 1000 * k & " ... "
        End If
        n = 1
        Do
          With .Controls.Add(Type:=msoControlPopup) '34 items * 30 items = 1020 faceIDs
            .Caption = 1000 * k + n & " ... " & 1000 * k + n + ICON_SET - 1
            For m = 0 To ICON_SET - 1
              With .Controls.Add(Type:=msoControlButton) '
                .Caption = "ID=" & 1000 * k + n + m
                .FaceId = 1000 * k + n + m
              End With
            Next m
          End With
          n = n + ICON_SET
        Loop While n < 1000 ' or 1020, some overlapp
      End With
    Next k
  End With 'xBar
End Sub
4 голосов
/ 12 сентября 2011

Посмотрите здесь:

Идентификаторы лица

Это дополнение для MS Excel. Работает для Excel 97 и более поздних версий.

1 голос
/ 19 октября 2016

Изменено предыдущее ответ для создания многочисленных панелей инструментов с наборами из 10 значков. Может изменять код (комментировать / не комментировать) количество панелей инструментов (на медленных машинах производительность может быть низкой)

Последний найденный значок Office 2013 был 25424 для OneDrive

Sub FaceIdsOutput()
' ==================================================
' FaceIdsOutput Macro
' ==================================================
' =========================
Dim sym_bar As CommandBar
Dim cmd_bar As CommandBar
' =========================
Dim i_bar As Integer
Dim n_bar_ammt As Integer
Dim i_bar_start As Integer
Dim i_bar_final As Integer
' =========================
Dim icon_ctrl As CommandBarControl
' =========================
Dim i_icon As Integer
Dim n_icon_step As Integer
Dim i_icon_start As Integer
Dim i_icon_final As Integer
' =========================
n_icon_step = 10
' =========================
i_bar_start = 1
n_bar_ammt =  500
' i_bar_start = 501
' n_bar_ammt =  1000
' i_bar_start = 1001
' n_bar_ammt =  1500
' i_bar_start = 1501
' n_bar_ammt =  2000
' i_bar_start = 2001
' n_bar_ammt =  2543
i_bar_final = i_bar_start + n_bar_ammt - 1
' =========================
' delete toolbars
' =========================
For Each cmd_bar In Application.CommandBars
    If InStr(cmd_bar.Name,"Symbol") <> 0 Then
        cmd_bar.Delete
    End If
Next
' =========================
' create toolbars
' =========================
For i_bar = i_bar_start To i_bar_final
    On Error Resume Next
    Set sym_bar = Application.CommandBars.Add _
        ("Symbol" & i_bar, msoBarFloating, Temporary:=True)
    ' =========================
    ' create buttons
    ' =========================
    i_icon_start = (i_bar-1) * n_icon_step + 1
    i_icon_final = i_icon_start + n_icon_step - 1
    For i_icon = i_icon_start To i_icon_final
        Set icon_ctrl = sym_bar.Controls.Add(msoControlButton)
        icon_ctrl.FaceId = i_icon
        icon_ctrl.TooltipText = i_icon
        Debug.Print ("Symbol = " & i_icon)
    Next i_icon
    sym_bar.Visible = True
Next i_bar
End Sub
Sub DeleteFaceIdsToolbar()
' ==================================================
' DeleteFaceIdsToolbar Macro
' ==================================================
Dim cmd_bar As CommandBar
For Each cmd_bar In Application.CommandBars
    If InStr(cmd_bar.Name,"Symbol") <> 0 Then
        cmd_bar.Delete
    End If
Next
End Sub
0 голосов
/ 25 марта 2016

скрипт предоставляет на листе имя элемента управления Excel 2010/2013

Sub IDsErmitteln()
Dim crtl As CommandBarControl
Dim i As Integer
Worksheets.Add
On Error Resume Next
i = 1
For Each crtl In Application.CommandBars(1).Controls(1).Controls
Cells(i, 1).Value = crtl.Caption
Cells(i, 2).Value = crtl.ID
i = i + 1
Next crtl
End Sub
0 голосов
/ 25 марта 2016

короткий скрипт записывает десять (цикл установлен на 10) добавление FaceID.как вкладка на вкладке панели инструментов «Надстройка» и с «Benutzerdefinierte Symbolliste löschen» - вы удаляете эту запись добавления (пометить и щелкнуть правой кнопкой мыши) - работает с Excel 2010/2013

Sub FaceIdsAusgeben()
Dim symb As CommandBar
Dim Icon As CommandBarControl
Dim i As Integer
On Error Resume Next
Set symb = Application.CommandBars.Add _
("Symbole", msoBarFloating)
For i = 1 To 10
Set Icon = symb.Controls.Add(msoControlButton)
Icon.FaceId = i
Icon.TooltipText = i
Debug.Print ("Symbole = " & i)
Next i
symb.Visible = True
End Sub
0 голосов
/ 13 сентября 2011

Я нашел это в этом месте, что я смотрю на

http://support.microsoft.com/default.aspx?scid=kb;[LN];Q213552

Таблица содержит Control и id (Face Id), используемые в Excel. Таким образом, для кнопки «Обновить» идентификатор лица равен 459, но он работает только с идентификатором менее 3 цифр.

и этот генератор (по вводу идентификатора начального лица и идентификатора конечного лица), затем нажмите кнопку Показать лица лиц, вы получите список значков в диапазоне (для загрузки необходимо сначала войти в систему)

http://www.ozgrid.com/forum/showthread.php?t=39992

и это для панели инструментов ленты

http://www.rondebruin.nl/ribbon.htm

...