我有在MS Project中創建自定義塔布·特沃VBA宏2013年的三個宏:如何在MS Project 2016中創建自定義功能區選項卡?
Private Sub Project_Open(ByVal pj As Project)
AddEVMRibbon
End Sub
Private Sub removeEVMRibbon()
ribbonXml = "<mso:customUI xmlns:mso=""http://schemas.microsoft.com/office/2009/07/customui"">" & "<mso:ribbon></mso:ribbon></mso:customUI>"
ActiveProject.SetCustomUI (ribbonXml)
End Sub
Private Sub AddEVMRibbon()
Dim ribbonXml As String
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=""macroTab"" label=""EVM"" insertAfterQ=""mso:TabFormat"">"
ribbonXml = ribbonXml + " <mso:group id=""testGroup"" label=""Test"" autoScale=""true"">"
ribbonXml = ribbonXml + " <mso:button id=""export_to_excel"" label=""Set EVM Calc Method"" "
ribbonXml = ribbonXml + "imageMso=""DiagramTargetInsertClassic"" onAction=""Set_EVM_Method""/>"
ribbonXml = ribbonXml + " <mso:button id=""get_evm_method"" label=""EVM to Excel"" "
ribbonXml = ribbonXml + "imageMso=""DiagramTargetInsertClassic"" onAction=""evm_to_excel""/>"
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
在MS項目2013正常工作,這些,但今天我得到了與MS項目2016運行它們的機會,他們失敗,相當壯觀。
在Project 2013和2016中,EVM選項卡均正確顯示,並且在單擊該自定義選項卡時出現「Set EVM Method」和「EVM to Excel」兩個選項。
在Project 2013中,單擊某個選項將執行與XML中的選項關聯的VBA宏。在Project 2016中,只需將鼠標懸停在兩個選項中的任何一個上,都會導致Project立即失敗,併爲我提供「Microsoft Project已停止工作」,然後「Microsoft Project正在重新啓動」消息。
我從來沒有機會點擊該選項,因爲當光標觸及該選項時它立即失敗。
項目2013和2016之間有什麼變化會導致此自定義功能區選項卡在2016年失敗?我一直無法找到任何涉及這種變化的內容。
Project 2016中的自定義選項卡及其選項是否需要編碼與2013不同?任何和所有的幫助將不勝感激。
我仍然沒有回答我的問題,但今天我運行這些宏運行MS Project 2016的另一臺計算機上,他們工作得很好 - 沒有致命的錯誤。我知道今天的計算機已經安裝了Project 2016,所以我想知道這是否爲更新版本,並且問題發生在早期版本的Project 2016上。我將嘗試讓客戶端將Project 2016更新到最新版本,並查看是否糾正了上述的崩潰問題。 – johnz