Thread: Custom icons
View Single Post
  #6   Report Post  
Posted to microsoft.public.word.newusers
Greg Maxey[_2_] Greg Maxey[_2_] is offline
external usenet poster
 
Posts: 668
Default Custom icons

By passing the control as an argument to the VBA callback you can using a
single procedure in your RibbonX. For example the following RibbonX uses
the same onAction callback "MyMultiPurposeMacro."

?xml version="1.0" encoding="UTF-8" standalone="yes"?
customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
ribbon startFromScratch="false"
tabs
tab id="geotso" label="geotso"
group id="geotsoGroup" label="geotso"
button id="BTN1" label="Remove Hyperlinks"
onAction="MyMultiPurposeMacro"/
button id="BTN2" label="Update Fields"
onAction="MyMultiPurposeMacro"/
button id="BTN3" label="Insert Date"
onAction="MyMultiPurposeMacro"/
button id="BTN4" label="Insert Time"
onAction="MyMultiPurposeMacro"/
/group
/tab
/tabs
/ribbon
/customUI

Sub MyMultiPurposeMacro(control As IRibbonControl)
Dim oField As Field
Select Case control.ID
Case "BTN1"
For Each oField In ActiveDocument.Fields
If oField.Type = wdFieldHyperlink Then
oField.Unlink
End If
Next
Case "BTN2"
For Each oField In ActiveDocument.Fields
oField.Update
Next
Case "BTN3"
Set oField = Selection.Fields.Add(Range:=Selection.Range,
Type:=wdFieldDate)
oField.Unlink
Case "BTN4"
Set oField = Selection.Fields.Add(Range:=Selection.Range,
Type:=wdFieldTime, Text:="\@ HH:mm")
oField.Unlink
End Select
Set oField = Nothing
End Sub

geotso wrote:
"Stefan Blom" wrote:

Creating custom icons can be done in Word 2007, but it's more
difficult than in previous versions. Take a look at the article at
http://gregmaxey.mvps.org/Ribbon_Custom_Icons.htm.

--
Stefan Blom
Microsoft Word MVP


Stefan,

Thank you very much for your answer.
I followed the link and the instructions and finally I created a
custom tab, with a custom group and a custom image within it. However
there is a minor problem yet:
I can't make it run an assigned macro. When I click the button I get
an error message "The macro cannot be found or has been disabled...",
although the macro is saved in Normal.dotm and all security
restrictions are disabled.

Here is the script produced by Custom UI Editor (partially edited by
me): customUI
xmlns="http://schemas.microsoft.com/office/2006/01/customui" ribbon
startFromScratch="false" tabs
tab id="geotso" label="geotso"
group id="geotsoGroup" label="geotso"
button id="removeHyperlinks" label="Remove all hyperlinks"
image="testico" onAction="RemoveHyperlinks()" /
/group
/tab
/tabs
/ribbon
/customUI

and here is the macro:
Sub RemoveHyperlinks()
Dim oField As Field
For Each oField In ActiveDocument.Fields
If oField.Type = wdFieldHyperlink Then
oField.Unlink
End If
Next
Set oField = Nothing
End Sub

Could you help me a little more, please?

Thanks again