Forum Discussion

John-project's avatar
John-project
Silver Contributor
Feb 23, 2022

Re: MS Project VBA to add a button to run a macro...

James,
Are you sure it copied correctly when you posted? When I click on the link as it appears in your post, I get the message, "the resource you are looking for has been removed, had its name changed, or is temporarily unavailable." Same thing happens if I copy the link and paste into a new browser window.
John

3 Replies

  • James_Price's avatar
    James_Price
    Brass Contributor
    Sorry John I can't explain it. We are using it in the VBA editor and the macro is working file.
    James
    • John-project's avatar
      John-project
      Silver Contributor
      James,
      I tried a different approach. I pasted the code you posted into a Project file (Project Pro 2019). I got a compile error but once I removed the quotes ("") from the http... string, the macro ran but didn't appear to do anything. I got some flashing of the ribbon when the last line of code executed but that was it. I must be missing something. For reference, I've never worked with XML code so I'm sure that has something to do with it.
      John
      • James_Price's avatar
        James_Price
        Brass Contributor
        Hi John - I'm using MS Project Online Desktop client. Below is the code that is working for me. Like you I'm not an xml person but this works for me.

        ' Name Proc for Error Handler Message
        strProcedure = "sAddCustomRibbon"

        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=""tabCustom"" label=""Split / Collapse Tasks"" insertAfterQ=""mso:TabFormat"">"
        ribbonXml = ribbonXml + " <mso:group id=""grpSplitCollapse"" label=""Split / Collapse"" autoScale=""true"">"
        ribbonXml = ribbonXml + " <mso:button id=""btnSplitTasks"" label=""Split Tasks"" size=""large"" imageMso=""CellsDelete"" onAction=""sSplitTasks""/>"
        ribbonXml = ribbonXml + " <mso:button id=""btnCollapseTasks"" label=""Collapse Tasks"" size=""large"" imageMso=""CellsInsertDialog"" onAction=""sCollapseTasks""/>"
        ribbonXml = ribbonXml + " </mso:group>"
        ribbonXml = ribbonXml + " </mso:tab>"
        ribbonXml = ribbonXml + " </mso:tabs>"
        ribbonXml = ribbonXml + " </mso:ribbon>"
        ribbonXml = ribbonXml + "</mso:customUI>"

        ActiveProject.SetCustomUI (ribbonXml)

Resources