Je développe une extension de ruban personnalisé pour Excel, dans lequel un contrôle nécessite différentes images personnalisées. J'ai réussi à utiliser certaines images situées dans mon système de fichiers, mais je voudrais intégrer ces images dans le fichier .xlsm. Est-il possible de le faire et de les référencer à partir du code VBA qui met à jour l'image du contrôle?Comment insérer des images dans un fichier Office ruban personnalisé
Pour des fins de test, c'est le XML qui définit mon ruban personnalisé:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="ribbonLoaded">
<ribbon>
<tabs>
<tab idMso="TabHome" >
<group id="customGroup1" label="My Group" insertAfterMso="GroupFont">
<button id="customButton1" label="Click Me" size="large" onAction="Macro1" getImage="getButtonImage"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Et ceci est la macro qui modifie l'image du contrôle customButton1
:
Dim imgIndex As Long
Public Sub getButtonImage(ByVal control As IRibbonControl, ByRef Image)
Select Case control.ID
Case "customButton1"
Set Image = LoadPicture("img" + Trim(Str(imgIndex)) + ".bmp")
imgIndex = (imgIndex + 1) Mod 2
End Select
End Sub
J'ai essayé d'ajouter les fichiers bmp à l'intérieur du fichier .xlsm et les référencent en mettant à jour le fichier de relations (.rels), mais je ne sais pas comment les référencer depuis VBA et surtout, quand j'ouvre le fichier avec Excel et le sauvegarde, ils sont automatiquement supprimés ...
Toute aide est appréciée!
Avez-vous besoin d'ajouter quelques images une fois ou avez-vous besoin de mettre à jour le fichier avec de nouvelles images plusieurs fois? Si vous ne devez les ajouter une fois que vous pouvez les ajouter dans le XML customUI en utilisant le ([Editor interface utilisateur personnalisée] http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2009/08/07/7293.aspx). Si vous avez besoin de les mettre à jour souvent, cette méthode peut ne pas fonctionner aussi bien. –
J'ai seulement besoin d'ajouter les images une fois. L'éditeur d'interface utilisateur personnalisée a été très utile pour résoudre le premier problème de leur intégration (manuellement, je référençais les images dans le mauvais fichier .rels ...). Mais comment peuvent-ils être consultés et chargés dans VBA? Je pense que la fonction LoadPicture ne fonctionne pas avec eux ... –