2010-02-25 4 views
2

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

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, это не было предположить, что, как я хочу?

+0

Я не вижу, как он может найти изображение, когда вы создаете каталог, содержащий изображение, но не копируя gif в каталог. – Fionnuala

+0

ohh, это было копия/прошлое из другой части. Не пытайтесь с этим справиться. С помощью этого кода кнопка и панель инструментов создаются, но кнопка имеет маленький значок и заголовок слева. Я хочу создать кнопку «Новый слайд» из Powerpoint2007 (большой значок с надписью ниже) ---> msoButtonIconAndCaptionBelow –

ответ

1

Проблема, вероятно, с изображением. Вам необходимо использовать BMP 16x16 с 256 цветами (см. this KB article). Обратите внимание, что вы также можете установить маску для прозрачности.

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