title image


Smiley Re: Word 2003: Änderung der CommandbardControl-Icons in "Nicht-XP-Style"
Hallo,



auf manuellem Weg kannst Du die Icons ganz simpel von "Neu" nach "Alt" ändern: Einfach über Extras -> Anpassen im Kontextmenü des zu ändernden Controls das Schaltflächenbild kopieren, in Paint einfügen, dort (das "alte" Icon) wieder kopieren und zum Schluß wieder als Schaltflächenbild einfügen (Kontextmenü des Controls).



Ein Word-Dokument als Behälter für die zu kopiernden bzw. einzufügenden Icons ist recht unzweckmäßig, da es bei den Icons keine Transparenz halten kann.



Den vorher genannten Weg zur "Umwandlung" der Icons von "neu" nach "alt" kann man auch ganz leicht via VBA automatisieren:



Option Explicit' 18.4.2006 Wolfram, enthält Teile von Désirées Commandbar-Icon-Code' Änderung der in Office 2003 enthaltenen CommandbarControls-Icons' in "Old-Style" (vor OFF2003) und zurück.Private Const CF_BITMAP = 2Private Const PICTYPE_BITMAP = 1Private Const CLSID_IPicture As String = "{7BF80980-BF32-101A-8BBB-00AA00300CAB}"Private Type UUID  Data1 As Long  Data2 As Integer  Data3 As Integer  Data4(7) As ByteEnd TypePrivate Type uPicDesc  SIZE As Long  Type As Long  hPic As Long  hPal As Long  Reserved As LongEnd TypePrivate Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As LongPrivate Declare Function CloseClipboard Lib "user32" () As LongPrivate Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As LongPrivate Declare Function OleCreatePictureIndirect Lib "olepro32.dll" _  (PicDesc As uPicDesc, RefIID As UUID, ByVal fPictureOwnsHandle As Long, _   iPic As IPicture) As LongPrivate Declare Function CLSIDFromString Lib "ole32.dll" _  (ByVal lpszProgID As Long, pCLSID As UUID) As LongPrivate Function PastePicturefromClipboard() As StdPicture  Dim hBMP As Long, uPicInfo As uPicDesc, IID_IPicture As UUID  If OpenClipboard(0&) = 0 Then Exit Function  hBMP = GetClipboardData(CF_BITMAP)  CloseClipboard  CLSIDFromString StrPtr(CLSID_IPicture), IID_IPicture  With uPicInfo    .SIZE = Len(uPicInfo)    .Type = PICTYPE_BITMAP    .hPic = hBMP  End With  OleCreatePictureIndirect uPicInfo, IID_IPicture, 1, PastePicturefromClipboardEnd FunctionPrivate Sub SetOldStyleCBCicon(ByVal c As CommandBarControl)  On Error Resume Next  Err.Clear: c.CopyFace  If Err = 0 Then c.Picture = PastePicturefromClipboard  ' Anmerkung: .Mask bleibt gleich (alt=neu)!End SubPrivate Sub ChangeCBCIcons(Optional ByVal XP_Style As Boolean = True)  Dim cb As CommandBar, c1 As CommandBarControl  CustomizationContext = NormalTemplate  On Error Resume Next  For Each cb In Application.CommandBars    For Each c1 In cb.Controls      If XP_Style Then c1.BuiltInFace = True Else SetOldStyleCBCicon c1    Next c1    ActiveDocument.UndoClear  Next cbEnd SubSub CBCIconsXPStyle()   ChangeCBCIcons TrueEnd SubSub CBCIconsOldStyle()   ChangeCBCIcons FalseEnd Sub



Der Code ist nur für OFF2003 sinnvoll und kommt in ein beliebiges leeres Modul z.B. im Normal-Template.



Grüße

Wolfram







geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: