如何使用VBA制作带有标题下方图标的工具栏按钮?

时间:2010-02-25 22:51:03

标签: vba powerpoint powerpoint-vba ribbonx

以下代码中缺少哪些内容,.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 个答案:

答案 0 :(得分:1)

问题很可能与图片有关。您需要使用16x16的BMP(256色)(请参阅this KB article)。请注意,您还可以在此处设置遮罩以获得透明度。

但是,从上面的评论来看,您似乎想要为PowerPoint 2007执行此操作。如果您希望在Office 2007/2010中执行此操作,则不应再使用CommandBar对象而是使用功能区技术。这是关于this的一篇非常好的文章。如果您正在使用VBA,Custom Ribbon Editor是必不可少的,here's a great landing page可以帮助您开始使用带有VBA的RibbonX(示例适用于Excel 2007,但在PPT / WRD中也是如此)。