Как сделать кнопку панели инструментов с надписью ниже значка с помощью VBA?
Чего не хватает в следующем коде, так как .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:SoundLogPresentations"
On Error GoTo 0
Set picPicture = stdole.StdFunctions.LoadPicture("C:SoundLogPresentationsSoundLog.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 ответ:
Проблема, скорее всего, с картинкой. Вам нужно использовать BMP 16x16 с 256 цветами (см. Эту статью KB). Примечание. Вы также можете установить маску на этом для прозрачности.
Из вашего комментария выше, однако, похоже, что вы хотите сделать это для PowerPoint 2007. Если вы хотите сделать это в Office 2007/2010,вы не должны больше использовать объект CommandBar, а скорее использовать технологию ленты. Вот действительно хорошая статья о этом. Если вы используете VBA, пользовательский редактор ленты незаменим и вот отличная целевая страница, чтобы вы начали работу с RibbonX с VBA (примеры для Excel 2007, но это то же самое в PPT/WRD).