2010-02-25 27 views
2

Qu'est-ce qui manque dans le code suivant, pour le .Caption obtient ci-dessous et l'icône sur le dessus?Comment créer un bouton de barre d'outils avec une légende sous l'icône en utilisant 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 

Avec le style de bouton msoButtonIconAndCaptionBelow, il n'a pas été supposé être comme je veux?

+0

Je ne vois pas comment il peut trouver l'image lorsque vous créez le répertoire qui contient l'image mais ne copie pas un fichier GIF dans le répertoire. – Fionnuala

+0

ohh, c'était copie/passé d'un autre sub. Ne pas botter avec ça. Avec ce code, le bouton et la barre d'outils sont créés mais le bouton a la petite icône et la légende à sa gauche. Je veux créer un bouton comme "Nouvelle diapositive" de leur Powerpoint2007 (une grande icône avec la légende ci-dessous) ---> msoButtonIconAndCaptionBelow –

Répondre

1

Le problème est probablement lié à l'image. Vous devez utiliser un BMP de 16x16 avec 256 couleurs (voir this KB article). Notez que vous pouvez également définir un masque sur ceci pour la transparence. De votre commentaire ci-dessus, cependant, il semble que vous voulez faire cela pour PowerPoint 2007. Si vous voulez faire cela dans Office 2007/2010, vous ne devriez plus utiliser l'objet CommandBar et plutôt utiliser la technologie du ruban. Voici un très bon article sur this. Si vous utilisez VBA, le Custom Ribbon Editor est indispensable et here's a great landing page pour démarrer avec RibbonX avec VBA (les exemples sont pour Excel 2007, mais c'est la même chose dans PPT/WRD).