2016-11-20 78 views
0

我想設置toggleButton的值。這是我區XMLVBA功能區getPressed爲toggleButton

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> 
<ribbon startFromScratch="false"> 
    <tabs> 
    <tab id="customTab" label="CC"> 
    <group id="grpSegments" label="Segments"> 
    <dropDown id="cbLeaves" label="Segments" onAction="LeavesChanged" getSelectedItemID="GetCBLeavesSelectedID"> 
     <item id='item4' label='4'/> 
     <item id='item6' label='6'/> 
     <item id='item8' label='8'/> 
     <item id='item12' label='12'/> 
    </dropDown> 
    <button id="cGenerate" label="Generate" size="large" onAction="ArrangeRosette"/> 
    </group> 
    <group id="grpGuides" label="Guides"> 
    <toggleButton id="cToggleGuide" label="Show Guides" onAction="GuideToggled" getPressed="GetGuideState"/> 
    </group> 
    </tab> 
    </tabs> 
</ribbon> 
</customUI> 

我有一個方法與簽名

Sub GuideToggled(control As IRibbonControl, ByRef Pressed As Boolean) 

然而,這總是導致一個錯誤有關宏不被訪問。

然而,在getSelectedItemID的下拉毫不費力

Sub GetCBLeavesSelectedID(control As IRibbonControl, ByRef ItemID As Variant) 

我找不到它具有getPressed回調記載的任何資源。

+0

你看了這裏https://msdn.microsoft.com/zh-cn/library/dd910802(v=office.12).aspx? – Niclas

+0

謝謝。我曾看過那本書 - 事實上,下載的書。它沒有回調。下面的Olle的答案提供了使用Ribbon XML編輯器的有用建議。 –

回答

0

您引用您的絲帶XML GuideToggledGetGuideState,所以你需要他們兩個:

'Callback for cToggleGuide onAction 
Sub GuideToggled(control As IRibbonControl, pressed As Boolean) 
End Sub 

'Callback for cToggleGuide getPressed 
Sub GetGuideState(control As IRibbonControl, ByRef returnedVal) 
End Sub 

您是否嘗試過的custom UI editor tool?它將幫助您找到適合您VBA回調的簽名。

+0

謝謝。我不知道自定義用戶界面編輯器也做了回調 - 整潔! 我已經從VSTO代碼轉換籤名。發現數據類型需要是「Variant」而不是「Boolean」 –

相關問題