A 'hello world' VBA program

From Ribbon Commander Documentation
Revision as of 17:26, 10 March 2013 by Rxdff15551 bb53 (Talk | contribs)

Jump to: navigation, search

Creating a tab

  • Enter the code below in a standard VBA module
  1. Public Sub CreateMyUI()
  2.  
  3.     ' Get a reference to the default rxCustomUI instance
  4.     Dim myCustomUI As rxCustomUI
  5.     Set myCustomUI = rxCustomUI.defaultInstance
  6.  
  7.     ' Get a reference to the rxRibbon object of our rxCustomUI instance
  8.     Dim myRibbon As rxRibbon
  9.     Set myRibbon = myCustomUI.ribbon
  10.  
  11.     ' Create a new tab
  12.     Dim myTab As rxTab
  13.     Set myTab = New rxTab
  14.  
  15.     ' Give the new tab a label
  16.     myTab.Label = "My First Tab"
  17.  
  18.     ' Add the new tab to myRibbon's tabs
  19.     myRibbon.tabs.Add myTab
  20.  
  21.  
  22.     ' Render the UI
  23.     myCustomUI.Refresh
  24.  
  25. End Sub
  • Run the sub to create an empty tab labeled 'My First Tab'
    EmptyTab.png

Code Analysis

Dim myCustomUI As rxCustomUI
Set myCustomUI = rxCustomUI.defaultInstance

rxCustomUI is at the top of the object model hierarchy. Here, we are holding on to the default rxCustomUI instance for the current office application session.


' Get a reference to the rxRibbon object of our rxCustomUI instance
Dim myRibbon As rxRibbon
Set myRibbon = myCustomUI.ribbon

Each rxCustomUI object owns a unique rxRibbon object. Here, we are holding on to the rxRibbon object of myCustomUI


' Create a new tab
Dim myTab As rxTab
Set myTab = New rxTab
 
' Give the new tab a label
myTab.Label = "My First Tab"

Here we create a new rxTab object and give it a label


' Add the new tab to myRibbon's tabs
myRibbon.tabs.Add myTab

Each rxRibbon object has a collection of rxTab objects (accessible through its .tabs property). Here we add the tab we created above to our ribbon's tabs


' Render the UI
myCustomUI.Refresh

To ensure optimal performance, UI updates always take place in two steps:

  1. Update the target rxCustomUI state, which we have done above
  2. Render the updated UI, which we are doing here