1

我是编程新手,但我尝试使用 Excel 功能区。我正在使用自定义 UI 编辑器。我想使用 insertBefore 和 insertAfter 控件来重新排列我的自定义按钮。如果我不使用唯一的命名空间并在按钮级别使用 insertAfterQ/insertBeforeQ,则按钮的顺序不会改变,但是,如果我使用它,我看不到相关的宏(可能是由于我的命名空间),因此 onAction 之后不会做任何事情单击按钮。我尝试了 idQ 的各种组合,但我无法让它发挥作用。下面的示例仅正确执行不在我指定的命名空间中的按钮 2。一个简单的例子:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" xmlns:x="MyNameSpace">
    <ribbon>
        <tabs>
            <tab idQ="x:customTab" label="My Order Form" insertAfterMso="TabHome">
                <group idQ="x:customGroup" label="My Order Form Tools">
                    <button idQ="x:customButton1" label="Clear" size="large" onAction="DeleteOrder" image="deleteorder" />
                    <button id="customButton2" label="Print" size="large" onAction="ResetOrder" image="resetorder" />
                    <button idQ="x:customButton3" label="Home" size="large" onAction="NewOrder" insertBeforeQ="x:customButton1" image="neworder" />
                </group>                
            </tab>
        </tabs>
    </ribbon>
</customUI>

有没有办法让 onAction 在命名空间中工作?或者还有其他方法吗?非常感谢, TS

4

1 回答 1

1

你真的需要命名空间吗?

如果要重新排列自己的控件,只需在 xml 中切换位置:

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
    <ribbon>
        <tabs>
            <tab id="customTab" label="My Order Form" insertAfterMso="TabHome">
                <group id="customGroup" label="My Order Form Tools">
                    <button id="customButton3" label="Home" size="large" onAction="NewOrder" image="neworder" />
                    <button id="customButton1" label="Clear" size="large" onAction="DeleteOrder" image="deleteorder" />
                    <button id="customButton2" label="Print" size="large" onAction="ResetOrder" image="resetorder" />
                </group>                
            </tab>
        </tabs>
    </ribbon>
</customUI>

如果您想相对于内置控件放置控件,请使用insertBeforeMsoinsertAfterMso,就像在"customTab". 据我所知,如果您将来自 customUI-xml 的控件组合在不同的文件中,则只需使用命名空间和 idQ-ids。

于 2016-10-11T11:56:12.233 回答