Insert Ribbon buttons into QuickAccessToolbar problem

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Hi,

with the following code I try to insert buttons into the QuickAccessToolbar,
which does not work.

Dim strDescription As String
strDescription = "<customUI
xmlns=""http://schemas.microsoft.com/office/2006/01/customui""
loadImage=""LoadImage"">"
strDescription = strDescription & _
"<ribbon>" & _
"<quat>" & _
"<documentControls>" & _
"<button id=""IDS_WaehlenCombo"" label=""" &
GetCheckedResString(IDS_WaehlenCombo) & """ onAction=""cmdCommonRibbonBttn""
getImage=""GetImage"" />" & _
"<button id=""IDS_Auflegen"" label=""" &
GetCheckedResString(IDS_Auflegen) & """ onAction=""cmdCommonRibbonBttn""
getImage=""GetImage"" />" & _
"<button id=""IDS_Aktionen"" label=""" &
GetCheckedResString(IDS_Aktionen) & """ onAction=""cmdCommonRibbonBttn""
getImage=""GetImage""/>" & _
"</documentControls>" & _
"</quat>" & _
"</ribbon>" & _
"</customUI>"

Does anybody see my failure?
Christian
 
For one thing you have to use the correct name and tie it to an idMso, plus
you need the <tabs> and <tab> tags there just as if you were working with
any other ribbon:

<ribbon>
<tabs>
<tab idMso="Quick Access Toolbar">

You also should be aware that any QAT modifications you make will only apply
to the QAT for that ribbon. If you customize the QAT for Outlook.Mail.Read
it won't apply to Outlook.Mail.Compose or any other ribbon. You'll need to
apply your QAT customizations to every ribbon where you want the
customizations to appear.
 
Hi Ken,

I tried it with the two following Ribbon descriptions. I receive the error
message:

Failure in analysing from "Quick Access Toolbar" as NCName-datatype.
Failure in analysing from attribut "idMso" with the value "Quick Access
Toolbar"

(It is translated from german)

1.) Ribbon desription:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
loadImage="LoadImage"><ribbon><tabs><tab idMso="Quick Access Toolbar" ><group
id="c4bBrand" label="XPhone"><button id="IDS_WaehlenCombo" label="Wählen"
onAction="cmdCommonRibbonBttn" getImage="GetImage" /><button
id="IDS_Auflegen" label="Auflegen" onAction="cmdCommonRibbonBttn"
getImage="GetImage" /><button id="IDS_Aktionen" label="Aktionen"
onAction="cmdCommonRibbonBttn"
getImage="GetImage"/></group></tab></tabs></ribbon></customUI>

2.) Ribbon description:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
loadImage="LoadImage"> said:
<button id="IDS_WaehlenCombo" label="Wählen" onAction="cmdCommonRibbonBttn"
getImage="GetImage" /><button id="IDS_Auflegen" label="Auflegen"
onAction="cmdCommonRibbonBttn" getImage="GetImage" /><button
id="IDS_Aktionen" label="Aktionen" onAction="cmdCommonRibbonBttn"
getImage="GetImage"/></tab></tabs></ribbon></customUI>
 
Hmm. It's documented as "Quick Access Toolbar" but you might need to use
"qat" despite the documentation. See if it works if you use the idMso =
"qat".
 
Hi Ken,

I tried it with the following code:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
loadImage="LoadImage"><ribbon><tabs><tab idMso="quat" ><button
id="IDS_WaehlenCombo" label="Wählen" onAction="cmdCommonRibbonBttn"
getImage="GetImage" /><button id="IDS_Auflegen" label="Auflegen"
onAction="cmdCommonRibbonBttn" getImage="GetImage" /><button
id="IDS_Aktionen" label="Aktionen" onAction="cmdCommonRibbonBttn"
getImage="GetImage"/></tab></tabs></ribbon></customUI>

and received the following error message (translated from german):

Errorcode: 0x80004005
Element '{http://schemas.microsoft.com/office/2006/01/customui}button' is
corresponding to the "Inhaltsmodell" from the higher element
'{http://schemas.microsoft.com/office/2006/01/customui}tab' unexpected

Christian
 
Is it better if you change:

<tab idMso="quat" >

to

<tab idMso="qat" > ?
 
Hi Ken,

with the following code I tried it:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
loadImage="LoadImage"><ribbon><tabs><tab idMso="qat" ><button
id="IDS_WaehlenCombo" label="Wählen" onAction="cmdCommonRibbonBttn"
getImage="GetImage" /><button id="IDS_Auflegen" label="Auflegen"
onAction="cmdCommonRibbonBttn" getImage="GetImage" /><button
id="IDS_Aktionen" label="Aktionen" onAction="cmdCommonRibbonBttn"
getImage="GetImage"/></tab></tabs></ribbon></customUI>

Outlook says that there are some problems with the button in the tab. ????
Christian
 
Now I'm guessing (I haven't worked with the QAT myself in code) but it's
possible you can only modify the QAT in code if you use the
<startfromscratch> setting, which would mean that you have to construct
everything from scratch.
 
The QAT is modified a bit differently. If you look at the XML hierarchy,
it actually goes like this:
<customUI>
<ribbon>
<qat>
<sharedControls>
<documentControls>
<tabs>
<contextualTabs>
So you have to put your buttons in either the sharedControls or
documentControls section. I'd advise sharedControls always, as the other
one is not useful in Outlook.
The big catch though is that any QAT modifications are only applied if
you use startFromScratch="true" in the ribbon element. For most add-ins
this means that you have to stay away from the QAT. This is intentional,
as the QAT is supposed to be the user's space. If a user wants a
particular add-in's button on the QAT, he or she can add them her or
himself.

Patrick Schmid [OneNote MVP]
--------------
http://pschmid.net
***
Outlook 2007 Performance Update: http://pschmid.net/blog/2007/04/13/105
Office 2007 RTM Issues: http://pschmid.net/blog/2006/11/13/80
***
Customize Office 2007: http://pschmid.net/office2007/customize
RibbonCustomizer Add-In: http://ribboncustomizer.com
OneNote 2007: http://pschmid.net/office2007/onenote
***
Subscribe to my Office 2007 blog: http://pschmid.net/blog/feed
 
Back
Top