Как сделать кнопку на панели инструментов с надписью под значком с помощью VBA? - PullRequest
2 голосов
/ 26 февраля 2010

Чего не хватает в следующем коде, для .Caption отображается ниже, а значок сверху?

Sub SoundLogToolbar()
    Dim cb As CommandBar
    Dim de As CommandBar
    Dim but As CommandBarButton
    Dim picPicture As IPictureDisp

    On Error Resume Next
        MkDir "C:\SoundLog\"
    On Error GoTo 0

    On Error Resume Next
        MkDir "C:\SoundLog\Presentations\"
    On Error GoTo 0

    Set picPicture = stdole.StdFunctions.LoadPicture("C:\SoundLog\Presentations\SoundLog.gif")

    On Error Resume Next
        Application.CommandBars("SoundLog").Delete
    On Error GoTo 0

    Set cb = Application.CommandBars.Add("SoundLog", msoBarTop, , True)

    Set but = CommandBars("SoundLog").Controls.Add(msoControlButton)
    but.Visible = True
    With but
        .Picture = picPicture
        .OnAction = "ShowUserForm"
        .Caption = "SoundLog!"
        .TooltipText = "run this to get data!"
        .Style = msoButtonIconAndCaptionBelow
    End With

    cb.Visible = True
End Sub

При стиле кнопки msoButtonIconAndCaptionBelow не должно быть, что я хочу?

1 Ответ

1 голос
/ 28 февраля 2010

Скорее всего, проблема с изображением. Вам нужно использовать BMP 16x16 с 256 цветами (см. в этой статье базы знаний ). Обратите внимание, что вы также можете установить маску для прозрачности.

Однако, из вашего комментария выше, похоже, что вы хотите сделать это для PowerPoint 2007. Если вы хотите сделать это в Office 2007/2010, вам не следует больше использовать объект CommandBar, а использовать Ленточная технология. Вот действительно хорошая статья о этом . Если вы используете VBA, Custom Ribbon Editor незаменим и вот отличная целевая страница , чтобы начать работу с RibbonX с VBA (примеры для Excel 2007, но это то же самое) в PPT / WRD).

...