How to add customUI onload automatically inside PowerPoint "RibbonX" using VBA code? - vba

I'm trying to add customUI onload automatically inside PowerPoint "RibbonX", but I can't find any way to use VBA code for that!
Can anyone please help me with that?

The onLoad callback is called only when it is declared in the Ribbon XML markup. The customUI element contains the corresponding attribute for that.
<customUI … OnLoad="MyAddinInitialize" …>
Read more about the Fluent UI (aka Ribbon UI) in the following series of articles:
Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)
Customizing the 2007 Office Fluent Ribbon for Developers (Part 2 of 3)
Customizing the 2007 Office Fluent Ribbon for Developers (Part 3 of 3)

Related

How to run an Macro in PowerPoint in the edit mode without starting the presentation

I have created a dropdown menu with a ComboBox and a small macro.
This dropdown menu only works when I switch to presentation mode.
However, I want to use the dropdown in the edit mode, as a template. Is there a simple way to do this.
I have already found some posts about this topic, but no real solution yet.
You can customize the ribbon UI instead. In that case your custom UI will be available in the edit mode. See Customize the Office Fluent ribbon by using an Open XML formats file for more information.
The Fluent UI (aka Ribbon UI) is described in depth in the following series of articles:
Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)
Customizing the 2007 Office Fluent Ribbon for Developers (Part 2 of 3)
Customizing the 2007 Office Fluent Ribbon for Developers (Part 3 of 3)
You may also find the Custom UI Editor helpful.

Outlook custom buttons in ribbon

I can use custum ui editor for Excel and Word VBA projects to add custom buttons on the ribbon with XML.
I have an Outlook-project (VBAProject.otm) and would like to do the same thing, to add buttons to the ribbon so when I'm deploying the custom buttons move with it.
I don't wont to use VSTO, only VBA.
Any suggestions?
Unlike other Office applications, in Outlook VBA macros can't be used for customizing the ribbon UI. You need to develop a COM add-in (for example, a VSTO based one). Take a look at the following articles:
Walkthrough: Creating a Custom Tab by Using the Ribbon Designer
Walkthrough: Creating a Custom Tab by Using Ribbon XML
The Fluent UI (aka Ribbon UI) is described in depth in the following series of articles:
Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)
Customizing the 2007 Office Fluent Ribbon for Developers (Part 2 of 3)
Customizing the 2007 Office Fluent Ribbon for Developers (Part 3 of 3)
Full Credit to This Site

Webbrowser on Excel Ribbon?

I'm using Visual Studio 2008. It is possible to add a Webbrowser item to a Form item, but is it possible to add a Webbrowser item to a Ribbon item ?
Or is there another way of showing a Web Page on the Ribbon ?
There is something called Ribbon-XML, may that do the job ?
Or is it possible to bind a Form (inheriting a Webbrowser) to the Ribbon ?
No, there is no way to place any third party controls on the ribbon except the ones defined by the Ribbon scheme.
Instead, you may consider placing a web browser control on a custom task pane. See Custom Task Panes for more information in MSDN.
Read more about the Fluent UI (aka Ribbon UI) in the following series of articles in MSND:
Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)
Customizing the 2007 Office Fluent Ribbon for Developers (Part 2 of 3)
Customizing the 2007 Office Fluent Ribbon for Developers (Part 3 of 3)

How to add a group to a (VBA) custom ribbon without xmlns/idQ?

Situation:
Users have an existing custom ribbon that is added via a .PPAM (combination of VBA macros and Ribbon customization XML).
We want to add a group to that custom ribbon via our managed COM add-in
For custom ribbons from other managed COM add-ins this is feasible via the xmlns:foo="bar" & idQ that can be extracted from the customUI Link
Complication:
Custom Ribbons from non-managed add-ins seem to have no xmlns namespace, they do not show up in the customUI
Even via PowerPoint/Office the user can not customize those ribbons.
Any idea how we could achieve adding buttons?
We can request changes to the non-managed/VBA add-in.
VBA add-ins don't have their own namespace by default, but can have one. If you create a custom namespace, then multiple VBA add-ins can share the same tab on the ribbon, for example.
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"
xmlns:nsMySpace="SomeName">
Then to create a new tab that other add-ins can share:
<tab idQ="nsMySpace:MySpace_Tab" label="MyTabLabel">
In addition to Steve's answer we've discovered that VBA add-ins have a default namespace even when none is specified in their customUI.
You can extract the namespace by adding a control from the ribbon to the Quick Access and then exporting the UI Customizations. The resulting file should show:
<mso:cmd app="PowerPoint" dt="1" />
<mso:customUI xmlns:x1="C:\Users\USERNAME\AppData\Roaming\Microsoft\AddIns\Addin.ppam">
So the default namespace seems to be the complete Path to the add-in.
From a high perspective two add-ins can share a ribbon tab for controls because they are loaded into a single PowerPoint instance. When you develop a macro enabled file with a custom UI - only this file can be opened at the same time. But two add-ins can be run for the file/template. That's why idQ is intended to use by add-ins.
You can read more about the Fluent UI (Ribbon UI) in the following series of articles in MSDN:
Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)
Customizing the 2007 Office Fluent Ribbon for Developers (Part 2 of 3)
Customizing the 2007 Office Fluent Ribbon for Developers (Part 3 of 3)

Outlook create a button like 'Private'

I want to create a button like the 'Private' button when creating a new appointment/meeting. So that the button freeze in the mouse hover style when it gets clicked.
I create the button in the VBA project like this:
Set objCBC = objCB.Controls.Add(Type:= --WHICHTYPE--, _
Temporary:=True)
So does anybody know which type of button should be applied here??
Command bars were deprecated. You need to use the Fluent UI (aka Ribbon UI) instead. Unfortunately Outlook doesn't allows to customize the Fluent UI with VBA, you need to develop an add-in instead. You can read more about the new UI in the following series of articles in MSDN:
Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)
Customizing the 2007 Office Fluent Ribbon for Developers (Part 2 of 3)
Customizing the 2007 Office Fluent Ribbon for Developers (Part 3 of 3)
See the toggleButton control in the list of available controls.