There’s a new range of video-based training courses for Visio developers, available via the Office Dev Center. The course is divided into nine modules, which should take the participant from Level 100 to 300 in a day or two.
The new Visio 2013 software development kit is now available for download, and if you’ve not come across previous versions I thought I’d write a quick review of what’s inside.
The wireframing template in Visio has a treeview control to that allows you to add and remove items, and set their respective indent levels. By default you can only adjust a single item at a time and even if you create a multiple selection, only the primary item is effected. A forum question asked how you could make a single change to multiple items and I thought I would write a quick bit of code to show how you might go about it.
The last post on ‘Modifying the Visio Grid shape’ demonstrates how to change the resizing behaviour of a complex shape from a ShapeSheet perspective. I used the word ‘modifying’ but, in fact, it’s actually a new shape and one built using code and it’s this aspect that I thought I’d focus on in this post.
I’d love to encourage anyone who’s not written any code before to keep reading as I think this makes a good challenge for new coders. If you’re in that boat then you might also want to have a quick read through Just for starters and Looping through to get you going, but the code below has lots of comments and is hopefully self explanatory.
I’ve recently been transferring some old VBA ShapeSheet utilities over to a c# add-in for Visio 2010 and hit a problem when trying to add some custom groups to the ShapeSheet Design ribbon tab. Using Ribbon.xml, I was happily able to add groups to either custom tabs or built-in ones such as ‘Home’, but for love nor money couldn’t get anything to show in the ShapeSheet tab.
Chris Hopkins, from the Visio team, kindly set me straight and the solution was in understanding that not all tabs are created equal and that the ShapeSheet Design tab belongs to a set called Contextual Tabs…
A newsgroup question came up a little while ago about how to automate Visio’s Save As Web function and as this is an area that I’m quite keen on, I thought I’d write a quick post about it. I’m really just going to cover what’s available in the help files but hopefully it will prove useful just reading from a different perspective.
As I mentioned, all of the documentation is available from the MSDN library, with the additional code samples found in the downloadable Visio 2007 SDK (a 2010 SDK will be available as the Visio gets its official launch in May)…
His answer to the problem is to use a list of ‘manual’ enumerations, which he includes as a download on the above post.
I emailed Mike earlier today and he very kindly ran his magic code over the Visio help files to produce this set of Visio enumerations. Perfect if you’re writing code from the other direction.
A newsgroup poster has asked how to change the page size for all pages in a document in one go. Although there’s no way of doing this through the UI, a code based answer to the problem is fairly straight forward and I think makes a nice simple first try at VBA for anyone that hasn’t had a go…
When I began to think about the previous post, (on automating the insertion of images into an Org Chart), I started by running the Visio Event Monitor tool while manually inserting an image using the Add-On's right click option to see the results. Rather than squeeze all of the technical explanation into the same post, I thought I'd add a second one to go into all of the gory details and also introduce the Event Monitor tool for anyone that hasn't come across it before...
A newsgroup poster asked a question this week about how he could link images within his Org Chart data.
Under normal conditions the Org Chart addon enables you to add images on a one-by-one basis. The Insert Picture... context menu option produces a file picker dialog that waits for the user to select an image file before continuing its process and this gets in the way of any proper programatic access...