如何在自定义功能区上动态填充菜单控件?

时间:2012-09-06 21:34:10

标签: excel vba excel-vba openxml ribbon

For Each ws In Worksheets
ListBox1.AddItem ws.Name
Next ws

ListBox1_Click()
Worksheets(ListBox1.Value).Activate

我可以在自定义功能区上使用菜单控件进行相同的操作 XML:

<menu id="mnuCats" label="abc" size="large" imageMso="PropertySheet"  >
<button id="go01" label="sky"  onAction="go01" imageMso="TextAlignGallery" />
<button id="go02" label="sea"  onAction="go02" imageMso="TextAlignGallery" />
</menu>

那么,如何使用工作表名称填充菜单以及如何将按钮的label属性作为字符串,以激活相应的工作表。

1 个答案:

答案 0 :(得分:3)

您需要一个下拉色带控件。如果在Excel文件中输入以下customUI XML(可能使用自定义UI编辑器http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2006/05/25/customuieditor.aspx),则可以获取正确的VBA回调签名列表,以便填充值并响应操作:

<dropDown id="drpTest" label="Test" showImage="false" getSelectedItemIndex="TestGetSelItem" onAction="TestOnAction" getItemCount="TestGetItemCount" getItemID="TestGetItemID" getItemLabel="TestGetItemLabel" sizeString="HowBigDropdownDoYouWant" supertip="Select Test.">
</dropDown>