Comment enregistrer ImageMSO icône à partir de Microsoft Office 2007?
J'ai trouvé beaucoup de belles icônes de Microsoft Office 2007. Avez-vous une idée pour extraire & enregistrer toutes les icônes en tant que fichiers PNG à l'aide de VBA?
Le code suivant est un code qui est utilisé pour obtenir une image à partir de ImageMSO.
Application.CommandBars.GetImageMso([name], [width], [height])
Je peux afficher tous comme contrôle PictureBox et d'enregistrer le fichier excel en tant que page web. Cependant, toutes les icones est de très mauvaise qualité.
De plus, j'essaie de créer C# Excel Add-in de projet pour l'exportation comme objet Bitmap en utilisant le code suivant. Mais j'ai trouvé qu'il ne peut pas exporter en tant que semi-transparent PNG.
stdole.IPictureDisp p = Application.CommandBars.GetImageMso(fileName, size, size);
Bitmap b = Bitmap.FromHbitmap((IntPtr)p.Handle, (IntPtr)p.hPal);
PS. Je veux enregistrer toutes les icônes PNG format, parce que j'ai besoin d'utiliser des semi-transparent caractéristique de celui-ci. Il me permettre d'utiliser toutes les icônes sur la plupart de la couleur de fond plus que de fond blanc.
Nope. Je viens de donner à ce sujet.
OriginalL'auteur Soul_Master | 2009-07-02
Vous devez vous connecter pour publier un commentaire.
- Je utiliser ImageMso assez fréquemment dans mon Excel de développement. Avoir trébuché sur ce post, j'ai pris une étape supplémentaire et de mettre un paquet de visualiser rechercher, extraire et enregistrer les icônes de Microsoft Excel en un fichier ou copier et coller (avec canal alpha de la transparence) à une autre application. J'ai également compilé une liste de 8,899 distinctes ImageMso noms provenant de sources diverses. J'espère que d'autres peuvent trouver cela utile.
Microsoft Office Icônes (ImageMSO) Galerie & Extraction
J'ai pu charger le complément à mon Excel 2013 sur Windows 8. Mais il n'y a pas de nouveau groupe/commande dans l'onglet Insertion.
J'utilise la version 32 bits d'Excel 2013. Il n'y a rien qui s'est passé après que j'ai la charge de ce complément.
Fonctionne très bien pour moi dans Excel 2010 32-bit sur Win7! Merci!
J'ai mis une mise à jour avec plusieurs optimisations. Je joint une capture d'écran de la galerie d'exécution dans Microsoft Excel 2013 sur Windows 8. J'espère que cela résout votre problème et si ça ne marche pas, peut-être que je peux obtenir les fichiers PNG pour vous. Notamment il y a maintenant 8,899 ImageMSO noms de trouver une source supplémentaire.
OriginalL'auteur Alton XL
J'ai enveloppé d'un C# classe Utilitaire pour extraire Office2007 galerie d'icônes .les fichiers png, tout en conservant leur transparence correctement. Le code principal est extrait d'un excellent article écrit par Andrew Whitechapel (
http://blogs.msdn.com/b/andreww/archive/2007/10/10/preserving-the-alpha-channel-when-converting-images.aspx). J'ai intégré cette avec le Bureau de 2007 de l'échantillon de l'icône de la feuille, dans le cas où vous souhaitez extraire toutes ces icônes dans un dossier cible.
Étapes sont les suivantes:
1) Télécharger l'Office de Galerie de feuille de calcul à http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=11675
2) Appel OfficeIcons.ExtractAllIcons() avec l'emplacement de la Office2007IconsGallery.xlsm exemple de feuille de calcul, et le dossier de destination où vous souhaitez les icônes extraites.
{code}
{code}
Références ajoutées, désolé. Il a certainement compile bien
OriginalL'auteur Ismail Degani
Tous les fichiers PNG peut être trouvé ici ce sont tous au format PNG déjà. Bonne programmation! (une belle archive ZIP est également disponible Ici) L'archive ZIP contient tous 17 de la Excel icônes.
Lorsque vous utilisez le GetImageMso méthode, vous vous retrouvez avec un IPicture interface de l'objet. Le IPicture interface accède à l'icône approprié pour l'enregistrement d'un fichier dans le format d'origine - un .ICO, .WMF ou un .BMP Le format PNG n'est pas pris en charge. Les liens suivants permettent d'expliquer pourquoi ce n'est pas directement possible:
http://msdn.microsoft.com/en-us/library/aa434604.aspx (msoGetImageMso méthode)
http://msdn.microsoft.com/en-us/library/ms680761%28VS.85%29.aspx (IPicture Interface)
http://msdn.microsoft.com/en-us/library/ms694504%28VS.85%29.aspx (Enregistrer en tant Que Fichier de la méthode)
Cependant, en utilisant une approche plus complexe donnera ce que vous voulez:
http://blogs.msdn.com/mshneer/archive/2007/10/10/preserving-transparency-when-rendering-office-icons.aspx
OriginalL'auteur caving
J'ai essayé Ismail réponse et il a fait de l'excellent travail. Cependant, il m'a fallu un certain temps à comprendre comment le faire fonctionner. Je peut partager ce peu de connaissances:
La solution nécessite ExcelDna de codeplex: lien.
Que je suis en utilisant
Net 4.0
je n'ai pas .zip soutien j'ai donc d'abord extrait les .xslm les fichiers d'un répertoire plat de la structure puis j'ai changé le code pour lire directement les fichiers.Puis dans le fichier Excel que j'appelle le ExcelDna extension de la méthode d'
Les instructions à l'aide de l'utilitaire de la classe (pour moi):
Espère que cela aide.... Merci Ismail!
OriginalL'auteur gbr