我找到了解决办法,为我的工作簿创建了自定义选项卡和按钮。它会在工作簿打开时创建选项卡,并在关闭本书时将其删除。
私人小组Workbook_Activate()
Dim hFile As Long
Dim path As String, fileName As String, ribbonXML As String, user As String
hFile = FreeFile
user = Environ("Username")
path = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\"
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='Pats Tools' insertBeforeQ='mso:TabFormat'>" & vbNewLine
ribbonXML = ribbonXML + " <mso:group id='reportGroup1' label='Month' autoScale='true'>" & vbNewLine
ribbonXML = ribbonXML + " <mso:button id='Months1' label='Previous' " & vbNewLine
ribbonXML = ribbonXML + "imageMso='AccessTableEvents' onAction='MonthPrevious.calling'/>" & vbNewLine
ribbonXML = ribbonXML + " <mso:button id='Months2' label='Current' " & vbNewLine
ribbonXML = ribbonXML + "imageMso='AccessListEvents' onAction='MonthCurrent.calling'/>" & vbNewLine
ribbonXML = ribbonXML + " <mso:button id='Months3' label='Next' " & vbNewLine
ribbonXML = ribbonXML + "imageMso='AccessTableEvents' onAction='MonthNext.calling'/>" & vbNewLine
ribbonXML = ribbonXML + " <mso:button id='Months4' label='All' " & vbNewLine
ribbonXML = ribbonXML + "imageMso='AccessTableEvents' onAction='AllMonths.calling'/>" & vbNewLine
ribbonXML = ribbonXML + " </mso:group>" & vbNewLine
ribbonXML = ribbonXML + " <mso:group id='reportGroup2' label='Properties' autoScale='true'>" & vbNewLine
ribbonXML = ribbonXML + " <mso:button id='Properties1' label='All' " & vbNewLine
ribbonXML = ribbonXML + "imageMso='BlogHomePage' onAction='AllProperties.calling'/>" & vbNewLine
ribbonXML = ribbonXML + " <mso:button id='Properties2' label='Name1' " & vbNewLine
ribbonXML = ribbonXML + "imageMso='BlogHomePage' onAction='Name1.calling'/>" & vbNewLine
ribbonXML = ribbonXML + " <mso:button id='Properties3' label='Name2' " & vbNewLine
ribbonXML = ribbonXML + "imageMso='BlogHomePage' onAction='Name2.calling'/>" & vbNewLine
ribbonXML = ribbonXML + " <mso:button id='Properties4' label='Name3' " & vbNewLine
ribbonXML = ribbonXML + "imageMso='BlogHomePage' onAction='Name3.ClearSheet'/>" & vbNewLine
ribbonXML = ribbonXML + " <mso:button id='Properties5' label='Name4' " & vbNewLine
ribbonXML = ribbonXML + "imageMso='BlogHomePage' onAction='Name4.calling'/>" & vbNewLine
ribbonXML = ribbonXML + " <mso:button id='Properties6' label='Name5' " & vbNewLine
ribbonXML = ribbonXML + "imageMso='BlogHomePage' onAction='Name5.calling'/>" & vbNewLine
ribbonXML = ribbonXML + " </mso:group>" & vbNewLine
ribbonXML = ribbonXML + " <mso:group id='reportGroup4' label='Edit Task' autoScale='true'>" & vbNewLine
ribbonXML = ribbonXML + " <mso:button id='ActionButton1' label='Type' " & vbNewLine
ribbonXML = ribbonXML + "imageMso='BlogHomePage' onAction='AddTypemod.calling'/>" & vbNewLine
ribbonXML = ribbonXML + " <mso:button id='ActionButton2' label='Section' " & vbNewLine
ribbonXML = ribbonXML + "imageMso='BlogHomePage' onAction='AddSectionMod.calling'/>" & vbNewLine
ribbonXML = ribbonXML + " <mso:button id='ActionButton3' label='Empty' " & vbNewLine
ribbonXML = ribbonXML + "imageMso='BlogHomePage' onAction='CedarCreek.calling'/>" & 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
不是一个按钮,而,使用** ** QAT您 –
不能创建在VBA功能区控制,但如果你通过'申请使用'CommandBars' API .CommandBars“它会在”加载项“功能区选项卡下创建按钮。在工作簿的Workbook_Open事件处理程序中创建按钮,并在打开该工作簿时显示该按钮。一个好主意是在工作簿关闭时也删除按钮。 –
我探讨了这一点,这里的问题是,我无法找到任何有关动态创建可以运行VBA代码的加载项的信息。加载项是必须安装或激活的预包装插件和播放。 – Hareborn