【问题标题】:MS Project - Macro not working on XML custom tabMS Project - 宏不适用于 XML 自定义选项卡
【发布时间】:2017-12-18 00:12:25
【问题描述】:

我正在使用 VBA 和 XML 在 MS Project 中创建一个自定义选项卡。在ProjectGlobal 我有以下内容:

内部ThisProject(Global.MPT)

Private Sub Project_Activate(ByVal pj As MSProject.Project)

ribbonXml = "<mso:customUI xmlns:x1=""http://schemas.microsoft.com/office/2009/07/customui/macro"" xmlns:mso=""http://schemas.microsoft.com/office/2009/07/customui"">"
ribbonXml = ribbonXml + "<mso:ribbon>"
ribbonXml = ribbonXml + "<mso:qat/>"
ribbonXml = ribbonXml + "<mso:tabs>"
ribbonXml = ribbonXml + "<mso:tab id=""mso_c1.497B55B8"" label=""Produtos Novos"">"
ribbonXml = ribbonXml + "<mso:group id=""mso_c2.497B55B8"" label=""New Product"" imageMso=""ViewGoForward"" autoScale=""true"">"
ribbonXml = ribbonXml + "<mso:button idQ=""x1:newProjectPN"" label=""New Project (NOK)"" imageMso=""CategoryCollapse"" onAction=""thisproject.newProjectPN"" visible=""true"" />"
ribbonXml = ribbonXml + "</mso:group>"
ribbonXml = ribbonXml + "</mso:tab>"
ribbonXml = ribbonXml + "</mso:tabs>"
ribbonXml = ribbonXml + "</mso:ribbon>"
ribbonXml = ribbonXml + "</mso:customUI>"

ActiveProject.SetCustomUI (ribbonXml)

End Sub

然后我有一个包含以下内容的模块

Sub newProjectPN()

MsgBox "Not working yet. Please be patient :)"

End Sub

它按预期创建带有按钮的选项卡,但是当我单击按钮时它什么也不做。如何在 XML 字符串中引用宏?

【问题讨论】:

    标签: xml vba ribbon ms-project


    【解决方案1】:

    我找到了解决方案。我在 XML 代码中使用了两个不同的名称空间。这就是我现在所拥有的,并且有效。我还将按钮 ID 从 idQ 更改为 id

    Private Sub Project_Activate(ByVal pj As MSProject.Project)
    
    ribbonXml = "<mso:customUI xmlns:mso=""http://schemas.microsoft.com/office/2009/07/customui"">"
    ribbonXml = ribbonXml + "<mso:ribbon>"
    ribbonXml = ribbonXml + "<mso:qat/>"
    ribbonXml = ribbonXml + "<mso:tabs>"
    ribbonXml = ribbonXml + "<mso:tab id=""mso_c1.497B55B8"" label=""Produtos Novos"">"
    ribbonXml = ribbonXml + "<mso:group id=""mso_c2.497B55B8"" label=""New Product"" imageMso=""ViewGoForward"" autoScale=""true"">"
    ribbonXml = ribbonXml + "<mso:button id=""newProjectPN"" label=""New Project (NOK)"" imageMso=""CategoryCollapse"" onAction=""thisproject.newProjectPN"" visible=""true"" />"
    ribbonXml = ribbonXml + "</mso:group>"
    ribbonXml = ribbonXml + "</mso:tab>"
    ribbonXml = ribbonXml + "</mso:tabs>"
    ribbonXml = ribbonXml + "</mso:ribbon>"
    ribbonXml = ribbonXml + "</mso:customUI>"
    
    ActiveProject.SetCustomUI (ribbonXml)
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-21
      • 1970-01-01
      • 1970-01-01
      • 2019-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多