I am working on a Visio project where the client wants to be able to configure the font used in each document. These documents have many custom masters, but the user can add there own annotations too. Therefore, I needed to find a way to synchronise the fonts used in both cases. Visio has Themes and Variants, and some of these built-in settings use different fonts, but there is no way of editing the fonts used in each theme since Office 2010 ( see Create a custom theme). There have been many questions on the web about changing the default font used in Visio, which is currently Calibri, but there were no easy answers found. Visio used to use Styles rather than Themes, and these capabilities are still there, but the buttons are not displayed in the default ribbon. However, the Drawing Explorer window does show the Styles and their hierarchies.
In the slideshow above, the four shapes on the left have the No Style, Theme, Normal and None styles applied from bottom to top. The right-hand shape is just a freshly drawn rectangle. Applying different themes changes the appearance and font.
The Drawing Explorer window reveals how the styles are based on other styles, but you cannot see that Theme is actually based on No Style until you use the right-mouse menu option Define Styles… which opens a dialog. Here you can see that a style can include Text, Line or Fill settings. however I merely want to change the default font for the document, so the Text button opens a dialog where that can be changed.
The default formula in most cells in the ShapeSheet for these sections is =ThemeVal(), and this means that the value will be inherited from the active Design/Theme. If the Char.Font formula is replaced with just an equals sign then the value is inherited from the Theme style. Therefore, changing the values here will mean that the document version of the Theme style is customised, and the same desired font will be applied, whichever Design/Theme is applied.
One remaining issue is that a user may wish to revert to using the default font value set in the the Theme style, rather than one applied within the UI. This requires the formula in the Char.Font cell to be set to either =ThemeVal(), if the Design/Theme is required, or just =, once more. This can be done by re-applying the Theme style to a shape using the Style or Text Style buttons that can be added back into your customised ribbon.

Using Notepad++ to Edit Visio ShapeSheet formulas
Visio shapes get their smartness from the formulas that are entered into the ShapeSheet, but editing these formulas can be extremely tricky and prone to error because of the lack of a modern programmer’s interface. Formulas can be quite long (up to 64k characters) but even medium size ones like the one in User.GetWorkdays cell…
Adding a second Function header bar to Visio swimlanes
I was recently asked if a second function header bar can be added to the swimlanes in the cross-functional flowchart templates in Visio. Some swimlanes can get quite wide, so it can be useful to have a duplicate function header shape on the far-side too. It is quite simple to duplicate the existing function header…
More Parsing XML Data in Visio Shapes
My last article looked at parsing an XML string with a known structure and order of elements and attributes. This can be acceptable in some scenarios, but what if the elements or attributes are in a different order? Then it is necessary to use the element and attribute names rather than their index position. This…
Parsing XML data in Visio Shapes
One of my current projects uses XML data, and some of the values in the XML data control the display and content of Visio shapes. Therefore, I looked deeper into how the XML data can be used directly to control parts of the graphics. Although the external data linking feature in Visio Professional and Visio…
Highlighting dirty text in Visio shapes
I suppose I should explain what I mean by dirty text first 🙂 I often display the value of a Shape Data row in Visio text, but sometimes the solution requires that the value is also editable. This is ok if the client accepts that all editing is done with the Shape Data window or…
Navigate to named areas in Visio with SS Plus
Many years ago, when I was an architect, I used a Unix CAD system with large buildings. I was able to navigate quickly to rectangular areas that I had named. Well, the Export to PowerPoint feature in Visio Plan 2 provides Slide Snippets, which are named areas that can be exported to PowerPoint. My SS…
Leave a Reply