如何在打开Worksheet时以编程方式更改Excel 2007功能区上的标签值

时间:2014-10-20 22:03:56

标签: excel-vba ribbon vba excel

在Excel 2007功能区上,我添加了一个带按钮的新组。我需要能够根据首次打开工作表时检查的条件将标签文本从“ABC_Execute”更改为“其他内容”(例如onload事件) - 如何在VBA中执行此操作?

用于自定义功能区的示例代码:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <ribbon>
        <tabs>
            <tab id="customTab" label="ABC" insertAfterMso="TabHome">
                <group id="customGroup" label="ABC Tools">
                    <button id="customButton1" label="ABC_Execute" size="large" onAction="Begin" imageMso="Bold" />
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>

THX。

1 个答案:

答案 0 :(得分:3)

您需要向CustomUI添加getLabel回调:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="rx_rib_on_load">
    <ribbon>
        <tabs>
            <tab id="customTab" label="ABC" insertAfterMso="TabHome">
                <group id="customGroup" label="ABC Tools">
                    <button id="customButton1" getLabel="rx_getLabel" size="large" onAction="Begin" imageMso="Bold" />
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>

然后在工作簿模块中:

Sub rx_getLabel(control As IRibbonControl, ByRef returnedVal)
    returnedVal = ThisWorkbook.Sheets("Sheet1").Range("A1").Value
End Sub
例如,

。如果您需要随后更改该值,则需要onLoad回调,以便在需要时使控件/功能区无效。