【问题标题】:Get name or Id of a ribbon controls获取功能区控件的名称或 ID
【发布时间】:2017-01-27 18:46:18
【问题描述】:

我的 Excel 中有一个自定义功能区控件,该功能区是通过第三方 c# 插件开发的。如何使用 VBA 代码触发功能区按钮单击?网上的许多例子都表明了这一点,但我的第一个问题是我什至不知道功能区的名称。如何获取我感兴趣的功能区和功能区按钮的名称?

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    我在下面的链接中找到了这个 How to get Ribbon custom Tabs IDs?

    进一步阅读使我到达此链接

    http://www.wordarticles.com/Shorts/RibbonVBA/RibbonVBADemo.php

    在下载部分,我下载了带有 VBA 程序来读取功能区、选项卡和按钮的 word 模板。它还有一个触发/执行所选按钮的代码。这个VBA函数也可以用于excel。

    【讨论】:

      【解决方案2】:

      简短回答:您不能在 Excel 中执行此操作
      1. 建议你试试CustomUIEditor
      2. 您可以将 excel 的扩展名更改为 .zip,并在档案中查找一些类似于按钮的 XML。 (例如我的文件有“Archivos de Ayuda”按钮)

      【讨论】:

      • 感谢您的帮助。我照你说的做了,但我的丝带没有出现:(
      【解决方案3】:

      第一个问题How do I trigger a ribbon button click using VBA code?

      我在 Workbook.Open 事件中使用以下内容,该事件在功能区中创建新选项卡,创建带有图标的按钮并将宏分配给按钮。当按下按钮时,它会从我创建的自定义插件中调用一个子。

      Sub RibbonChange()
      
      Dim hFile As Long
      Dim path As String, fileName As String, ribbonXML As String  
      
      hFile = FreeFile
      fileName = "Excel.officeUI"
      
      
      ribbonXML = "<mso:customUI      xmlns:mso='http://schemas.microsoft.com/office/2009/07/customui'>" & vbNewLine
      ribbonXML = ribbonXML + "  <mso:ribbon>" & vbNewLine
      ribbonXML = ribbonXML + "    <mso:qat/>" & vbNewLine
      ribbonXML = ribbonXML + "    <mso:tabs>" & vbNewLine
      ribbonXML = ribbonXML + "      <mso:tab id='reportTab' label='YOUR LABLE' insertBeforeQ='mso:TabFormat'>" & vbNewLine
      ribbonXML = ribbonXML + "        <mso:group id='reportGroup' label='YOUR LABLE' autoScale='true'>" & vbNewLine
      ribbonXML = ribbonXML + "          <mso:button id='runReport' label='YOUR LABLE' " & vbNewLine
      ribbonXML = ribbonXML + "imageMso='AppointmentColor2'      onAction='YOUR SUB NAME'/>" & vbNewLine
      ribbonXML = ribbonXML + "        </mso:group>" & vbNewLine
      ribbonXML = ribbonXML + "      </mso:tab>" & vbNewLine
      ribbonXML = ribbonXML + "    </mso:tabs>" & vbNewLine
      ribbonXML = ribbonXML + "  </mso:ribbon>" & vbNewLine
      ribbonXML = ribbonXML + "</mso:customUI>"
      
      ribbonXML = Replace(ribbonXML, """", "")
      
      Open path & fileName For Output Access Write As hFile
      Print #hFile, ribbonXML
      Close hFile
      
      End Sub
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-01
        • 1970-01-01
        相关资源
        最近更新 更多