Callouts left behind when inserting extra shape (Visio 2010)

Started by Anders, September 25, 2017, 12:57:45 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Anders

Hi, I think the problem is easiest to describe with some screenshots.

I have a number of annotations on my chart, using the Insert -> Callout function. If I manually move the shape that the call out is attached to, the callout stays with the shape. (attachment 1)

If I insert a new shape into the process, everything moves except the callouts, which just get left behind. Is there anyway to fix this? (attachment 2).

This is a simplified example.

wapperdude

Visio 2019 Pro

Anders

Quote from: wapperdude on September 25, 2017, 09:45:06 PM
How did you add the callout?  You must select the shape first, then add the callout.  See this:  https://support.office.com/en-us/article/Annotate-a-diagram-by-using-callouts-2f3a8780-4bab-45a3-88dc-ad2ac0b79cb9

Wapperdude
Hi, yes I selected the shape first, then inserted the callout.

JohnGoldsmith

Hello Anders,

I can reproduce this on 2016 too and have raised it with the product team.  They've acknowledged it and have said they'll be addressing it in a future channel release, although I'm not sure that this will make it through to 2010.

When the target shape gets moved in this way the relationship is actually maintained and as a partial workaround you can move the target or callout shape manually and this will see the association line update to point in the right direction.  The relative postion of the callout shape to the target isn't, unfortunately, updated at the same time.

If you have many callouts to reposition you could multi-select the ones you want and them move them en-masse. 

Hope that helps explain the problem.

Best regards

John
John Goldsmith - Visio MVP
http://visualsignals.typepad.co.uk/

Anders

Quote from: JohnGoldsmith on September 26, 2017, 12:51:50 PM
Hello Anders,

I can reproduce this on 2016 too and have raised it with the product team.  They've acknowledged it and have said they'll be addressing it in a future channel release, although I'm not sure that this will make it through to 2010.

When the target shape gets moved in this way the relationship is actually maintained and as a partial workaround you can move the target or callout shape manually and this will see the association line update to point in the right direction.  The relative postion of the callout shape to the target isn't, unfortunately, updated at the same time.

If you have many callouts to reposition you could multi-select the ones you want and them move them en-masse. 

Hope that helps explain the problem.

Best regards

John
Thanks for raising it with the product team. I see what you mean about the links being maintained, that wasn't obvious to me at the time, and so I was grateful to be able to undo. I think it probably takes less time to zoom out, select the relevant area and move the chart manually.

Are there any alternatives to callouts, that I could use for annotations?

wapperdude

There is a workaround, using SETATREF shapesheet function.  See attached.  The SETATREF will intercept changes to either the reference shape position or to the relative position of the CallOut.  Either shape may be moved without clobbering the formula.

First, I only have V2007, so I cannot replicate the exact situation that you're dealing with, but this should be close enough.

Basically, you need to edit the callout so that it's relative position tracks the referenced shape.  In my example, the callout's BeginX and BeginY are glued to the reference shape, so, these automatically pickup the reference shape's position.  This is convenient, as it keeps all required info within the CallOut shape itself.

Open the shapesheet of the CallOut and do some editing.  First, if not present, add the User-defined section, then add two rows.  For convenience, I renamed each row to user.HPos and user.VPos.  Next edit both the EndX and EndY cells.  (Note, for this CallOut shape, it's relative position is moved by grabbing the end point of the line segment.)  The formula for each respective cell becomes:

    EndX:  =SETATREF(User.HPos,SETATREFEVAL(SETATREFEXPR(4.75 in)-BeginX)+BeginX)
    EndY:  =SETATREF(User.VPos,SETATREFEVAL(SETATREFEXPR(4.75 in)-BeginY)+BeginY)

Note:  the two numeric values are not critical.  These will automatically update when you re-position the Callout

Note2: if you save shape to a custom stencil, then it will always be available.  I didn't try this, but you might be able to edit the master in the document stencil and then "flush" the changes into all the related shapes. 

HTH
Wapperdude

Ed. note:  typos in EndY formula corrected.
Visio 2019 Pro

Anders

Thanks wapperdude! I can't seem to find EndX or EndY on the shape sheet, there's a PinX and PinY under Shape Transform. Could this be the same thing?

wapperdude

Could you upload a simple Visio file with a Callout shape?  Sounds like it's different than the shape I used.  Please use the older VSD format rather than VSDX.

Wapperdude
Visio 2019 Pro

Anders

wapperdude, does one of these give you what you need?

I don't have a VSDX format in 2010, as far as I can find. The first VSD attachment is the default format for me in 2010. The second (despite having the same file extension) I saved as a "Visio 2002 Drawing".

wapperdude

The first file was fine, don't need the 2002.

This shape is much more sophisticated.  It has a lot of built-in features and underlying code.  All that is good as it makes a very nice smart shape.  But, it also makes modifying very difficult because it's necessary to work-around the Visio code to prevent formulas from being clobbered.  This may take a little time.  I can see the result of the failed code...the control point doesn't get the necessary info for gluing, and the "bracket" geometries don't get the relative position info.

Will give it a go at making a fix.  Or perhaps someone else in the forum might feel like contributing.

Wapperdude
Visio 2019 Pro

Anders

Really appreciate your help on this. Living up to your title "Hero Member" I'd say.