Articles about Microsoft ® Office Visio ®

Paying my dues

First of all I need to pay my dues to the other Visio websites, blogs and forums, so, in no particular order: tag cloud

Links to all the Visio articles

Free Shapes

66 and 110 Block shapes
Universal chemical formula shape
Circuit board shapes
Control system diagrams new
Electronics breadboards shapes
Fire diamond shape
Grafcet diagrams new
MASCOT software design methodology
Multi-tree square connector
Occam shapes
Plastics recycling shapes
Protocol stack shapes
Resource allocation graph shapes
Syntax diagrams
Warning signs

Visio addins

Output dialog box for showing text when a shape is double-clicked
Show a webpage within Visio new


Adding a preview to your template
Making complex switches
Making new templates visible
Showing a path through a flowchart new

Visio Development

Interfacing to Visio with Lazarus and Graham Wideman's code


Flowchart shapes
Plan shapes new
Template descriptions new
Visio slowdown graph
Connected shapes - making a shape follow the actions of another new
Visio file formats timeline new

Various useful formulae for use in Visio shapesheet cells

  • Resizing shape's width with text:
    Set cell Width = GUARD(TEXTWIDTH(TheText))

  • Resizing shape's width with text, but with a minimum size (10mm in this case):
    Set cell Width = GUARD(MAX(TEXTWIDTH(TheText), 10mm))

  • Resizing shape's height with text:
    Set cell Height = GUARD(TEXTHEIGHT(TheText,Width))

  • Resizing text with the shape:
    Set cell Character -> Size = 10 pt*Height/0.75 in

  • Resizing text with the shape (with minimum and maximum values):
    Set cell Character -> Size = MIN(48 pt, Max(4 pt,10 pt*Height/0.75 in.))

  • Level text - text that is always horizontal, sometimes called 'gravity text':
    Set cell Text Transform -> TxtAngle = -ANG360(Angle)

  • Using an Action to toggle a cell
    1. Create a section -> Actions
    2. in the Menu cell add the text that you want to appear on the shape's right click menu (typically set the text to "Toggle")
    assume we wish to toggle cell "User.Toggle":
    3. in the Action cell add the formula =SETF(GetRef(User.Toggle), NOT(GetRef(User.Toggle)))
    Now when we select Toggle on the shape's menu the value in cell User.Toggle will alternately be TRUE and FALSE.

Books about Visio

Microsoft Visio 2013 Business Process Diagramming and Validation Microsoft Visio 2013 Business Process Diagramming and Validation by David J. Parker
Microsoft Office Visio 2007 Inside Out Microsoft Office Visio 2007 Inside Out by Mark Walker
Visualizing Information with Microsoft Office Visio 2007 Visualizing Information with Microsoft Office Visio 2007 by David Parker
Using Microsoft Visio 2010 Using Microsoft Visio 2010 by Chris Roth
The Art of PCB Reverse Engineering: Unraveling the Beauty of the Original Design The Art of PCB Reverse Engineering: Unraveling the Beauty of the Original Design by Keng Tiong
and many more books about Visio

Book Reviews

Microsoft Visio 2013 Business Process Diagramming and Validation by David J. Parker

David has a knack of taking an almost unknown aspect of Visio and making it accessible to mere mortals.
If you try using diagram validation within Visio just from the menus you would import the flowchart rules into your diagram, if it's a flowchart then you might make some progress, if not then you'll just shrug your shoulders and say, yes, fine, what do I do next, then ignore diagram validation for the rest of your life. There are no explanations, no menus to help you change the validation rules. Nothing. Almost as if whoever put it all together couldn't be bothered.
David's book starts at the beginning and takes you through all the steps with more information than you think possible to create diagrams that can be validated, not just plain old flowcharts, but UML, BPMN and all the others; but there is so much more, so much about the internals of Visio, SharePoint, new stuff in the Visio SDK. Go on, have a look.
David's book on Amazon

How-to articles

How to remove extraneous layer information from a shape master

(Instructions for Visio 2003/Visio 2007 - for Visio 2010 the menus are different)
  1. Load the stencil, put into edit mode, open the master
  2. Select the shape's contents (Control-A)
  3. menu Format -> Layer
  4. If you are now asked to enter a leyer name then the shape has a blank layer name! Enter a name (anything - it will be removed later) and press OK
  5. On the Layer dialog click None then OK
  6. menu View -> Layer Properties and tick Remove Unreferenced Layers, then click OK
  7. Close the shape, click OK to update the shape
  8. When done, close the stencil.

Adding a timestamp when code-signing template/document macros

When you code-sign a Visio template or document (from within the VBA editor: menu Tools -> Digital Signature) the document gets signed and all seems fine, except, when your digital certificate expires the documents you signed will also expire and the user will get all sort of horrible warning notices and the macros will no longer work. The missing information that needs to be applied is a timestamp from the certificate's authority. It would be so nice if the signing process were to give you some warning that you need to add the following in the registry:
  • Use the registry editor to create:
  • If your certificate is from Comodo, add key:
    "TimeStampURL" = ""
    If your certificate is from Verisign, add key:
    "TimeStampURL" = ""
    Other signing authorities have similar URLs.
  • Set key "TimeStampRetryCount" = 5
  • Set key "TimeStampRetryDelay" = 5

Adding blank space around connector text

When you add text to a connector, if the text is over the top of the line of the connector then the line is hidden 'under' the text, like so: the problem
If you want to add more space around the text then you'd think this could be done with the text formatting, but not so. You can add extra space characters in front of your text, that works, but adding spaces after the text is ignored.
half-way there
The secret to getting the spaces after the text recognised is to edit the connector text, then at the far right-hand end,
menu Insert -> Symbol -> More Symbols -> Special Characters and select Non-breaking space.
Article added 6th November 2015

Make any shape a container

If you add a container to a page and open the Drawing Explorer window (you will need to be in Developer mode) then open the shapesheet editor for this shape and you will see it contains a User-Defined section. This contains a cell called msvStructureType which has the value "Container". Add this same item to your shape and it will become a container.
Article added 5th September 2019

3rd-party additions for Microsoft Visio

There are various lists available of 3rd-party Visio stencils and add-ons, all of which seem to be totally out of date and full of dead links. I shall endeavour to keep this list up to date, please inform me of any changes or additions. Email me