Thanks to Chris Boyd for starting the thread and writing the code to display the Project Guide (that was contained in Project 2007).
His code can be found below. Thank you Chris – very helpful for those on Project 2010.
The first step is to write a method that turns the guide on and off. To do this, we need to have a guide, so I am going to use the one that we shipped in Project 2007. However, the default Project Guide files need some changes:
The folder structure should be flattened. All Project Guide files unzip to a subfolder named DefaultProjectGuideFiles.
The gbui:// protocol is removed. The custom “goal-based user interface” protocol and Project Guide resources are not installed with Microsoft Project 2010. For example, the following line in MainPage.htm:
<script src=”gbui://mainpage.js” language=”JScript”></script>
… is changed to:
<script src=mainpage.js” language=”JScript”></script>
You can find the modified Project Guide files in the Project 2010 SDK download:
Once you have the guide downloaded and extracted into a directory, for example, C:PGDefaultProjectGuideFiles, you need to author the following method in VBA:
Sub Guide() If (Application.DisplayProjectGuide = False) Then OptionsInterfaceEx DisplayProjectGuide:=True, _ ProjectGuideUseDefaultFunctionalLayoutPage:=False, _ ProjectGuideUseDefaultContent:=False, _ ProjectGuideContent:="C:PGDefaultProjectGuideFilesGBUI.XML", _ ProjectGuideFunctionalLayoutPage:="C:PGDefaultProjectGuideFilesMAINPAGE.htm" Else OptionsInterfaceEx DisplayProjectGuide:=False End If End Sub
Update the ProjectGuideContent and ProjectGuideFunctionalLayoutPage to point your Project Guide content.
The next step is to create a button in the ribbon
Here is the code to do this:
Private Sub AddGuideRibbonButton() 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 idQ=""mso:TabView"">" ribbonXML = ribbonXML + " <mso:group id=""Project_Guide"" label=""Project Guide"" autoScale=""true"">" ribbonXML = ribbonXML + " <mso:button id=""Project_Guide_Btn"" label=""Guide"" imageMso=""CategoryCollapse"" onAction=""Guide""/>" 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
The last step is to hook up loading the button to an event. For this example, I am doing on the Project Open event, however, you may want to choose a different event based on your scenario.
Private Sub Project_Open(ByVal pj As Project) AddGuideRibbonButton End Sub
At this point
Again many thanks to Chris.