Site icon bVisual

Adding Macro Ribbon Buttons to Visio Documents from a Stencil

I wrote a post a few years ago entitled How to Run VBA Macros from a Ribbon Button in Visio 2010, and was recently asked how to add the custom buttons to an existing tab. Well, it got me thinking that I don’t really like having any VBA code in my Visio diagram documents, so I thought I would explain how all the code can be in a macro-enabled stencil so that it can be used with many different diagram documents. It turned out to be a very easy modification….

Simply copy all of the code from the RibboMacros.vsd, from the previous article, into a macro-enabled stencil and make a slight modification to the LoadRibbon() and UnloadRibbon() functions by replacing ThisDocument with Nothing.

Option Explicit


Private Sub Document_DocumentOpened(ByVal Doc As IVDocument)
'Open the custom ui
    LoadRibbon
End Sub

Private Sub Document_BeforeDocumentClose(ByVal Doc As IVDocument)
'Remove the custom UI
    UnloadRibbon
End Sub

Public Sub LoadRibbon()
    CustomUIStart Nothing
End Sub

Public Sub UnloadRibbon()
    CustomUIStop Nothing
End Sub

That’s all there is to it, because now the buttons will appear whenever the stencil is opened, and disappear whenever it is closed.

New Requirement for VBA Digital Signatures in Visio

Like most developers, I have to buy a new digital certificate every 3 years to sign my Visio add-ins and VBA projects. Usually that means verifying my bone fides, paying the fee and downloading the certificate, but security has been increased, and now, like everyone else, I have to use a USB key with it…

Using Visio Color by Value on Connectors

Data Graphics in Visio Plan 2 and Visio Professional is great, but it only enables us to use them with 2D shapes in Visio, i.e. not on connectors. So, what if you want to change the line colour of the connectors between the 2D shapes because of the data flowing between them? Well, it is…

Counting glued and connected shapes in Visio

I got a surprise in one of my projects when I counted the shapes glued together using the Shape.GluedShapes(…) method … the sum of the filtered glued shapes just didn’t add up to the unfiltered count. So, I thought I should check the Shape.ConnectedShapes(…) method too … and there is a scenario where that has…

A Visio List Shape is also a Container

Structured diagrams have been around in Microsoft Visio since 2010 and I have always known that list shapes are a specialized container shape, however it still came as a surprise to me recently that a list shape can simultaneously act as a container shape! There are a few examples of both container and list shapes…

Duplicating Visio Data Graphics

I was recently asked about switching between different Visio Data Graphics within a page, so I thought I should record a few short videos to explain how Visio Data Graphics work, how they can be edited and duplicated, and how to automate switching between them. (more…)

Referencing Visio Shapes

Every Visio shape must have a unique name in the collection that it belongs to, and to ensure this, Visio automatically one using the master name or just “Sheet”, if not an instance of a master, followed by a period (“.”) and the ID. However, a user can rename a shape, and Visio will then…

Exit mobile version