Создание нового меню

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

&quot писал(а):где взять для макросов иконки
Сделать самому
http://www.andypope.info/vba/buttoneditor.htm
aks_sv
Сообщения: 53
Зарегистрирован: 30 окт 2007, 06:38

Aent,
&quot писал(а):Сделать самому
Зачем изобретать велосипед, они же есть готовые, к ним же обращается Уокенбах:
&quot писал(а):MenuItem.FaceId = 162
Только где их увидеть?
Pavel55
Сообщения: 418
Зарегистрирован: 20 окт 2006, 11:40
Откуда: Moscow

aks_sv писал(а):Только где их увидеть?
Запустите этот макрос на пустом листе Excel и подождите 2-4 минуты (когда FaceID в StatusBar дойдёт до 10000)

Код: Выделить всё

Public Sub ListAllFaces()
Dim Btn As Byte
    Btn = MsgBox("This macro will list all of the button faces (over 10000)" & vbCrLf & _
            "in this worksheet." & vbCrLf & vbCrLf & _
            "Are you READY TO PROCEED?", vbOKCancel, "Button Image Listing ")
    
    If Btn = vbCancel Then Exit Sub
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    Dim cbCtl As CommandBarControl
    Dim cbBar As CommandBar
    On Error Resume Next
    Application.ScreenUpdating = False
    Set cbBar = CommandBars.Add(Position:=msoBarFloating, MenuBar:=False, temporary:=True)
    Set cbCtl = cbBar.Controls.Add(Type:=msoControlButton, temporary:=True)
    k = 1
    Do While Err.Number = 0
        For j = 1 To 10
            i = i + 1
            Application.StatusBar = "Face ID = " & i
            cbCtl.FaceId = i
            cbCtl.CopyFace
            If Err.Number <> 0 Then Exit For
            ActiveSheet.Paste Cells(k, j + 1)
            Cells(k, j).Value = i
        Next
        k = k + 1
    Loop
    Application.StatusBar = False
    cbBar.Delete
End Sub
aks_sv
Сообщения: 53
Зарегистрирован: 30 окт 2007, 06:38

Pavel55,
Классно! Спасибо!
Ответить