Accueil > > > EXTRACTION DES ICÔNES DES MENU D'OFFICE
EXTRACTION DES ICÔNES DES MENU D'OFFICE
Information sur la source
Description
Chose demander plusieurs fois sur le forum. J'ai donc décider de faire un petit code simple qui permet cela. Mais, ce code ne marche que pour office Xp, 2002, 2003, 2007. Pour office 2000, j'ai fait le code en vb6 car c'était plus simple à faire et plus rapide. Donc, le projet est dans le zip (il faudra ajouter les références "Microsoft Excel Object Library" et "Microsoft Office Object Library" pour que ca marche.
Source
- Option Explicit
-
- Public Sub GetOfficeButton()
-
- ' Affiche une boîte de dialogue pour choisir le dossier d'extraction
- Dim Dlg As Office.FileDialog
- Set Dlg = Application.FileDialog(msoFileDialogFolderPicker)
- Dlg.AllowMultiSelect = False
- Dlg.Show
- Dlg.InitialFileName = Application.ThisWorkbook.Path & "\"
- If Dlg.SelectedItems.Count > 0 Then
-
- Const FileExt As String = ".bmp"
- Const nbFileDigit As Integer = 5
-
- Dim ExtractDirectory As String: ExtractDirectory = Dlg.SelectedItems(1)
- If Right$(ExtractDirectory, 1) <> "\" Then ExtractDirectory = ExtractDirectory & "\"
-
- ' Bouton temporaire
- Dim TblBtn As Office.CommandBarButton
- Set TblBtn = Application.CommandBars(1).Controls.Add(Office.msoControlButton)
-
- ' Extraction
- On Error Resume Next
- Dim nBtn As Integer
- Do ' Comme on ne connait pas le nombre de boutons
- nBtn = nBtn + 1 ' Incrémente le nombre de boutons trouvés
- TblBtn.FaceId = nBtn ' Attribut l'image du bouton
- If Err.Number = -2147467259 Then Exit Do ' Si le bouton n'a pas été trouvé (on est arrivé à la fin), on quitte la boucle
- Dim BtnId As String: BtnId = FormatInt(nBtn, nbFileDigit) ' Formatage du nom de l'image
- SavePicture TblBtn.Picture, ExtractDirectory & BtnId & FileExt ' Enregistre l'image
- Loop
- Err.Clear
- On Error GoTo 0
-
- MsgBox "Terminer" & vbNewLine & nBtn & " images extraites.", vbInformation, "GetOfficeButton"
-
- TblBtn.Delete ' Supprime le bouton temporaire
- End If
- End Sub
-
- Private Function FormatInt(ByVal n As Integer, ByVal Lenght As String) As String
- Dim sn As String: sn = CStr(n)
- If Len(sn) < Lenght Then
- FormatInt = String(Lenght - Len(sn), "0") & sn
- Exit Function
- End If
- FormatInt = n
- End Function
Option Explicit
Public Sub GetOfficeButton()
' Affiche une boîte de dialogue pour choisir le dossier d'extraction
Dim Dlg As Office.FileDialog
Set Dlg = Application.FileDialog(msoFileDialogFolderPicker)
Dlg.AllowMultiSelect = False
Dlg.Show
Dlg.InitialFileName = Application.ThisWorkbook.Path & "\"
If Dlg.SelectedItems.Count > 0 Then
Const FileExt As String = ".bmp"
Const nbFileDigit As Integer = 5
Dim ExtractDirectory As String: ExtractDirectory = Dlg.SelectedItems(1)
If Right$(ExtractDirectory, 1) <> "\" Then ExtractDirectory = ExtractDirectory & "\"
' Bouton temporaire
Dim TblBtn As Office.CommandBarButton
Set TblBtn = Application.CommandBars(1).Controls.Add(Office.msoControlButton)
' Extraction
On Error Resume Next
Dim nBtn As Integer
Do ' Comme on ne connait pas le nombre de boutons
nBtn = nBtn + 1 ' Incrémente le nombre de boutons trouvés
TblBtn.FaceId = nBtn ' Attribut l'image du bouton
If Err.Number = -2147467259 Then Exit Do ' Si le bouton n'a pas été trouvé (on est arrivé à la fin), on quitte la boucle
Dim BtnId As String: BtnId = FormatInt(nBtn, nbFileDigit) ' Formatage du nom de l'image
SavePicture TblBtn.Picture, ExtractDirectory & BtnId & FileExt ' Enregistre l'image
Loop
Err.Clear
On Error GoTo 0
MsgBox "Terminer" & vbNewLine & nBtn & " images extraites.", vbInformation, "GetOfficeButton"
TblBtn.Delete ' Supprime le bouton temporaire
End If
End Sub
Private Function FormatInt(ByVal n As Integer, ByVal Lenght As String) As String
Dim sn As String: sn = CStr(n)
If Len(sn) < Lenght Then
FormatInt = String(Lenght - Len(sn), "0") & sn
Exit Function
End If
FormatInt = n
End Function
Conclusion
Avec ca on à 15934 icônes pour office 2007. Pour l'amélioration, faudra filtrer les images ; la moitié des images extraites sont vides !!! (les menus sans icônes) Pour le projet vb6, il détecte les images vides et les sauvegarde pas. Reste a le faire pour le projet vba. Testé sous office 2000, 2003 et 2007.
Historique
- 14 juillet 2006 20:52:02 :
- Ajoute du projet vb6 pour la compabilité avec office 2000.
- 01 novembre 2006 17:43:45 :
- Ajout d'une progression
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Image listbox [ par Lokki ]
Bon je suis entrein de faire un ti logiciel mais jaimerais savoir comment faire pour mettre un icone ou image ou tout autre dans une list box ! exempl
urgent: Icones et Boutons [ par sonnyc ]
Sur le controle Bouton, les icones sont placés automatiquement au milieu mais est ce que c'est possible de mettre un icone sur la gauche (ou la droite
Aider moi a inserer une image ou icone dans un ritch text SVP [ par Pheniar ]
J' aimerais integrer une icone ou une image dans un ritch text manuelement et non en drag & drop,si certain me comprenne.Merci a toutes les solutions
### {{{ une aide sur les boutons avec une image }}} ### [ par ayperos ]
je voudrais connetre la procedure pour mettre une image sur un bouton sur vb (je sais c surment une question bette, mais je debutte, et je n'ai pas d'
affichage icone dans un toolbar [ par snook ]
Bonjour,J'ai un probleme d'affichage d'icone dans les boutons detoolbar:1- j'associe une ImageList a ma barre d'outils.2- je charge les icones à parti
Cherche bouton office 2000/XP [ par Seb_d_angers ]
Bonjour,je cherche désespérement à récupérer une bibliothèque d'icone office 2000 ou XP (icone OUVRIR, IMPRIMER, GRAS...)pour l'insérer dans mon appli
Pbl d'icone image list - toolbar [ par themaste ]
Bonjour a tous!J'ai un pbl avec mes icones.En fait, j'ai mis ds mon imagelist des icones style win XP (toute bell et plein de couleur etc).J'associe d
image quadrillée: paramétrer des boutons dans cette image [ par philtor ]
je cherche comment réaliser un objet paramétrable qui permet de placer des boutons dans une image quadrillée. la taille des boutons correspond à la la
Comment Mettre une image dans un menu (Urgent) [ par Fredo ]
Comment mettre une image dans un menu.(Comme dans VB lorsque l'on clique sur fichier il y a une liste de commande et à côté de certaines il y a une ic
Problème simple d'icone ! HELP ! [ par bubble44 ]
Bon j'ai honte mais j'arrive pas a trouver un programme de conversion potable (peut etre parce que mon image bmp a un nombre de couleurs qui lui plait
|
Derniers Blogs
[HTML5] SLIDES ET DéMOS : AUTOUR DU W3C , NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] SLIDES ET DéMOS : AUTOUR DU W3C , NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Très bonne après-midi passée lors cette conférence avec le W3C, organisée par L' Inria sur les nouveaux standards, ce Mardi 14 Février, on sent vraiment que çà bosse au W3C, et l'avenir est très très prometteur pour le HTML5, notamment ...
Cliquez pour lire la suite de l'article par Gio GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|