2017-03-02 128 views
4

我有在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不同?任何和所有的幫助將不勝感激。

+0

我仍然沒有回答我的問題,但今天我運行這些宏運行MS Project 2016的另一臺計算機上,他們工作得很好 - 沒有致命的錯誤。我知道今天的計算機已經安裝了Project 2016,所以我想知道這是否爲更新版本,並且問題發生在早期版本的Project 2016上。我將嘗試讓客戶端將Project 2016更新到最新版本,並查看是否糾正了上述的崩潰問題。 – johnz

回答

相關問題