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.
The importance of #layers in Visio for Power BI
Judging by the number of downloads of my free Visio and Power BI GuIde, there is an increasing recognition of this great feature. I recently started to prepare an example for someone, but found that their sample Visio document has just over the 1,000 shape limit, so what can you do about that? The answer…
Setting Default Measurement Units in Visio Pages
Microsoft Visio can handle many different units of measurements which can be set for a page and separately for shapes, such as dimensions, within the page. This can confuse some users who expect them both to be the same all the time. In fact, the dimension units can be set to be the same as…
Linking Data to Shapes in Visio after using Data Visualizer
Data Visualizer (DV) in Visio Plan 2 (Data | Create from Data | Create ) is great because it provides a way of automatically creating a diagram from data, but it also prevents some of the other data-linking features in Visio from being used. This is because DV wants to take control of the data…
Synchronizing Visio Shape Fill Color (or almost any cell) across pages
I was recently asked how the color of one shape can be changed and for other shapes to be automatically updated to the same color … even if they are on different pages! Well, it is possible with Microsoft Visio’s awesome ShapeSheet formulas. In fact, this capability is not limited to the FillForegnd cell ……
Positioning Visio Shape Text Block with a Control Handle
I was recently asked how a control handle can be added to a Visio shape so that it can be used to re-position the text block. Fortunately, it is extremely easy to setup, and requires just two formulas to be updated in the ShapeSheet. This is a great use of the SETATREF(…) function. (more…)
Understanding Segments of Visio Geometry
I recently had to revise my understanding of the POINTALONGPATH(…) function in Visio because I was getting a #REF! error in some cases. My particular scenario requires a line with a number of vertices that are initially all in a straight line but can be moved by dragging controls around that each vertex is bound…