Monday, 12 March 2012

Visio 2010 hyperlinking shapes on different pages

My wife has just been handed a role where she has to swim-lane processes which cut across multiple streams of the business.
An easy task to to create in Visio ... you would think, perhaps one process layer per page with appropriate swim-lanes on each and just hyperlink between them where they intersect ... too easy!
And thats the problem ... it USED to be "too easy" ... now its to damn obscure!
Thanks M$oft for once again taking what was simple and complicating it.

To cut to the chase, it IS really easy to link from a shape on one page to another page or even another page in another product (Word Excel etc) but another shape .... in the same document ... not so simple.

When you select the shape to link FROM you choose EITHER another file/web-url OR another page in the current visio set from the browse-list. So far so simple. Now select the target shape .... but how?

There is no drop-down/browse-list of the available shapes on the identified target sheet so you have to already know the identity of the shape you want to link TO.
No problem ... select the target shape, right-click and select properties to get the name .... NOPE! Shapes are all assigned common class names!
OK .... define a name for the shape and use that ... NOPE!
Still no joy with a typically helpful error message which says the hyperlink is invalid and the target object cannot be found.
Now the totally in-obvious becomes apparent after extensive searching of the "universal help manual" (aka Google/Bing etc) and finding hundreds of references to linking a shape to everything BUT another shape!
Finally an obscure forum mentions that you can get the shape name for your VBA code by enabling the Visio Developer Tab from the File-Options-General settings and then selecting the shape and clicking the Shape Name tool .... AAAAaaaarrgggH!

To get the shape's name, on the Developer tab, click Shape Name. If you don't see the Developer tab, you can add it:
  1. Click the File tab.
  2. Click Options.
  3. Click the Advanced tab, and under General, select the Run in developer mode check box.
  4. The Shape Name button is in the Shape Design group.
 So far so good ... now you have the real target object name you can link to it, ... but wait! Low-and-behold all is not well even yet!
Following the link does bring the object into view on the target page but doesn't really center focus on it, .... more like hyperlinking to the page really, not the shape.

One last step ... try setting the Zoom factor of the hyperlink to 300% or 400% (experiment for best result) and FINALLY you have a hyperlink between two Visio shapes which jumps-to and focuses-on the target shape.

Hope you found that helpful

OH! One last thing!
You want to go BACK to where you hyperlinked FROM?
Just click the BACK button on the toolbar.
You have to Customise the Quick Access Toolbar and Add the Back (WebGoBack) from the "Commands Not in the Ribbon" group .... then you can click it to return from whence you came.


    Tam Hendron (Amey Plc) said...

    Thank you. You've just made my day as you expressed exactly how I felt only after 5 minutes of trying to find the solution. My colleague is delighted as she has spent several weeks!! I heart Google!!

    Tam Hendron (Amey Plc) said...

    Thank you. This is absolutely excellent, and very entertaining. I am sorry that you had to go through all the pain to find the solution but trust me, I am VERY grateful!!

    Nicolas said...

    Thank you for your tutorial, it was very helfull.

    It's not always easy to understand what Microsoft has in mind when they create such functionalities.

    Anonymous said...

    Wow. Thanks. I believe you just saved me days of searching.

    I'm hoping that this is an intentional bury of functionality. If not, it is really bad IxD.

    James Gibson said...

    Good post!
    I went through the same frustrating episode. Is anybody at Microsoft looking at this stuff?
    You would think that, at the very least the Microsoft testers would have complained about having to add extra steps in their test scripts and screamed holy crap or something!!

    Anonymous said...

    I find that when I link to a shape - in the manner you describe - it links to the center of the shape....

    I'm linking to a container - that has many steps/shapes within it.

    I'm trying to figure out how to link to the TOP of the container image...

    Col. Sanders said...

    To "a-nonny-mouse" (comment 18 June 2015)
    Sorry I've been so slow posting and responding to your comment :-(
    It's been so long since I wrote this article I cannot recall exactly what it does for me without re-creating the scenario and I've not had time to spend in Visio of late to work this out.
    I imagine you are quite correct because this is a HYPERLINK connecting to an OBJECT ... NOT a CONNECTOR connecting to a CONNECTION-POINT
    I'd be interested to know why you need to hyperlink to a specific part of the object?
    I could understand it if you were trying to attach connectors between objects but this is about hyper-linking from one object to the next so I'm not sure quite what it is you are trying to achieve by linking to specific part of that object.
    If what you are saying is that you have a big container object with lots of other objects inside it and you want to link toward something near the top of the outer ('master') container, I would be trying one of two things.
    (1) Link to one of the objects near your desired location within the 'master' container
    (2) Create a small (possibly invisible) object just outside the 'master container' at the point you want your link to appear to land at and hyperlink to that object.

    If I get time I'll have a play and report back but I doubt it will be any time very soon I'm sorry, as my priority is studying for my TOGAF exam!
    Regards - Automation_Man