AI is changing the world and how we should approach it. So I decided to see if I could get Claude Sonnet 4.6 Agent to completely write an application for me, and I mean completely. The application is written in Python by Claude, and I have not written a single line. The code is available at github.com/davidjpp/Visio-Report-Runner/ and it enables any Windows user, with Microsoft Excel installed, to run some types of reports from any Visio document (*.vsdx).
[Read more…] about Introducing a free Visio Report Runner applicationShape Design
Protecting the integrity of custom Visio masters
All of my Visio solutions contain custom masters because this is the best way to create smart shapes that respond to user’s needs. This usually means creating Shape Data, User-defined Cells and Action rows that govern aspects of the shape with formulas designed to provide an efficient user interface. As a developer I sometimes forget that other users may not perform the same actions as I do, and can accidently undo all my intended behaviour. For example, in recent testing of a visual stream mapping system that I am working on, my carefully constructed master-shape relationship was being broken by grouping some of them together, thus changing their behavior and hiding them from some of the custom functions. The reason given was to that they want to create copies and this seemed like a reasonable way to do it. Now, I have known that this is bad ever since my original Visio developer training back in 1996, so I always avoid doing this, and erroneously thought that other would know this too. I was wrong to be so myopic, so I explored how I can best prevent this and other user actions that could break the intended master-shape relationship.
[Read more…] about Protecting the integrity of custom Visio mastersMigrating from Lucidchart to Visio?
My fellow Visio MVP, Michel Laplane, and I recently converted and transformed 15k Lucidchart documents to Microsoft Visio for a large multi-national organization. This was approximately 4 years after they had moved from Visio to Lucidchart! I do not know the full reason behind these changes in technology, and I do not have a particular dislike of Lucidchart, but my passion is Visio, so I was willing to assist SohoDragon in this migration for their client. The Lucidchart application is solely a web-based diagramming system with the documents stored in AWS, so perhaps it does not fit easily within the corporate compliance architecture of Microsoft Azure, Teams and SharePoint. Microsoft Visio though has the same files for both the desktop and web editions, although there are some restrictions in the size and features of editing Visio document in the web. However, all the M365 users will have the ability to view and comment of the Visio documents that they have permission for. Visio Plan 1 or Plan 2 subscriptions will be required for editing the migrated documents because they have not been created with the templates provided in Visio for M365, and Visio documents which have any page with over a thousand shapes will currently only be editable in the Visio desktop edition. The Lucidchart documents needed to be audited, exported and transformed into Visio documents, and then uploaded to similar folders in SharePoint, where user permissions could be applied. We decided to use multiple secure Windows VMs to process the documents and then upload them to SharePoint before the VMs were deleted.

Creating Boolean Context Menus in Visio
Over the many, many years that I have been creating Microsoft Visio solutions, I have had to create numerous right-mouse context menus for shapes to control their Shape Data values. Over that time, patterns emerge, so this article is highlighting three different appearances for simple Boolean values, otherwise known as True/False or Yes/No values, and even for tristate Yes/No/Maybe. In fact, Visio presents you with Boolean as one of the eight types of data available on the Define Shape Data dialog, but there is no UI for creating accompanying right-mouse context menus except for the ShapeSheet window. However, I will show that using a Fixed List type is often preferable to a simple Boolean type.

Creating a Dynamic connector master automatically
I have been creating Microsoft Visio solutions for 30 years now … my first was in 1996! I have been an advocate for custom Masters from the very start, every since I learnt how editing the Master can automatically update all of its instance shapes can be automatically updated throughout the document. Whenever you drag and drop a Master from a Stencil into a document for the first time, it copies that Master to the Document Stencil, and from then on it will use the local Master in the Document Stencil to create new shape instances that reference the local Master. If you need to customise the local Master, then you should ensure that the Match master by name on drop is checked. All of the provided stencils contain Masters where this property is not checked. The main exception to this is the Dynamic connector Master. Not only is this Master provided with this property checked, it is also automatically created when you do certain actions. This article explains when this is done in the UI and in code.
[Read more…] about Creating a Dynamic connector master automaticallyA visual exploration of Penrose Tiling in Visio
Maybe it is because I used to be a building architect, but I have always been fascinated by the relationship between numbers and visualisations. Perhaps the most famous one is the Golden Ratio which has been used as the basis of many building designs and art pieces. It is often recognised to create a harmony that is universally understood, and is repeatedly found in nature, yet it all boils down to a simple ratio of about 1.618 … and is related to the Fibonacci Numbers. Roger Penrose (re-)discovered shapes based on the Golden Ratio can be arranged aperiodically on an infinite canvas without a repeating pattern. These Penrose Tiling shapes were developed into two groups (P2 and P3) each with two shapes.
There are rules about the arrangement to ensure that they do not fall into a repeatable series. These rules can be followed by ensuring that the ends of the arcs within each shape meet each other. The shapes can be used to try to create an aperiodic pattern of an infinite size, and then a timer can randomly change the colours. It’s a little festive fun!
[Read more…] about A visual exploration of Penrose Tiling in Visio



















