<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Visio the Blog</title><subtitle type="html">The Blog</subtitle><id>http://msmvps.com/blogs/visio/atom.aspx</id><link rel="alternate" type="text/html" href="http://msmvps.com/blogs/visio/default.aspx" /><link rel="self" type="application/atom+xml" href="http://msmvps.com/blogs/visio/atom.aspx" /><generator uri="http://communityserver.org" version="4.1.40407.4157">Community Server</generator><updated>2006-01-11T21:18:00Z</updated><entry><title>How do I change skin colour?</title><link rel="alternate" type="text/html" href="/blogs/visio/archive/2009/10/24/how-do-i-change-skin-colour.aspx" /><id>/blogs/visio/archive/2009/10/24/how-do-i-change-skin-colour.aspx</id><published>2009-10-24T14:23:00Z</published><updated>2009-10-24T14:23:00Z</updated><content type="html">&lt;p&gt;I have a few Google alerts set up to let me know if the word Visio is mentioned on the internet. I am always interested in new stencils for Visio and this has proven an effective way of finding them. Most of the time, the hit has nothing to do with the product Visio or it was a link to a download site for Visio or one of the books written about Visio. Today was slightly different, there was a link to a blog that said&amp;nbsp;&amp;quot;In Visio 2007, i want to change skin color, but I don&amp;#39;t know the formula&amp;#39;s - does anybody know?&amp;quot;, but no answer.&lt;/p&gt;
&lt;p&gt;Thanks to the Visio devs, it is quite easy (almost). They were nice enough to provide a User cell (similar to a custom property/shape data, but hidden) called User.SkinColor where you can set the skin colour. For the Accounting shape in the Workflow stencil of Visio 2007, that value is HSL(21,165,128). HSL stands for Hue, Saturation and Luminesance and is a similar&amp;nbsp;means for setting a colour as RGB.&lt;/p&gt;
&lt;p&gt;Of course, the tricky bit is working out what HSL values correspond to different skin tones and assigning a politcally correct name to it. I can understand why the Visio devs would not want to spend days arguing over the correct skin tone of someone from&amp;nbsp;Redmond.&lt;/p&gt;
&lt;p&gt;The use of the HSL function is a good choice because it provides a good range of skin&amp;nbsp;tones by just modifying the value for luminesance.&amp;nbsp;So it would be possible to create a simple piece of VBA code to display a slider that would change the user cell User,SkinColor of the selected shape (or shapes) from a value from 0 to 240.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;John... Visio MVP&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1734786" width="1" height="1"&gt;</content><author><name>visio</name><uri>http://msmvps.com/members/visio/default.aspx</uri></author><category term="Visio" scheme="http://msmvps.com/blogs/visio/archive/tags/Visio/default.aspx" /><category term="skin colour" scheme="http://msmvps.com/blogs/visio/archive/tags/skin+colour/default.aspx" /></entry><entry><title>A blast from the past</title><link rel="alternate" type="text/html" href="/blogs/visio/archive/2009/10/16/a-blast-from-the-past.aspx" /><id>/blogs/visio/archive/2009/10/16/a-blast-from-the-past.aspx</id><published>2009-10-16T13:39:00Z</published><updated>2009-10-16T13:39:00Z</updated><content type="html">&lt;p&gt;Debra Dalgleish, one of the Excel MVPs mentioned an old episode of the Computer Chronicles on&amp;nbsp;Facebook&amp;nbsp;and provided a link.&lt;/p&gt;
&lt;p&gt;It did not take me long to find an appropriate link for the Visio crowd. The show is about Windows 95 and OS2, but at&amp;nbsp;16:50 to 20:00 is an intro to Visio 3.1&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.archive.org/details/Windows4"&gt;http://www.archive.org/details/Windows4&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Nice shirt Ted!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1732721" width="1" height="1"&gt;</content><author><name>visio</name><uri>http://msmvps.com/members/visio/default.aspx</uri></author><category term="Visio" scheme="http://msmvps.com/blogs/visio/archive/tags/Visio/default.aspx" /><category term="Ted" scheme="http://msmvps.com/blogs/visio/archive/tags/Ted/default.aspx" /></entry><entry><title>Revision Dates per Page</title><link rel="alternate" type="text/html" href="/blogs/visio/archive/2009/10/08/revision-dates-per-page.aspx" /><id>/blogs/visio/archive/2009/10/08/revision-dates-per-page.aspx</id><published>2009-10-08T00:39:00Z</published><updated>2009-10-08T00:39:00Z</updated><content type="html">&lt;p&gt;One of the posters in the newsgroup was asking about providing a revision date on each page of a Visio document and this is what I came up with. The only dates that are associated with a Visio drawing are done at the document level, so another apporach is necessary. &lt;/p&gt;
&lt;p&gt;To create a date stamp at the page level, add a custom property/Shape Data to the pagesheet for each page. This property can then be changed automatically when the page is altered.&amp;nbsp;Since the property is updated automatically, the&amp;nbsp;property will also be created if it does not exist.&lt;/p&gt;
&lt;p&gt;Private Sub Document_BeforeSelectionDelete(ByVal Selection As IVSelection)&lt;br /&gt;UpdateDateReviewed&lt;br /&gt;End Sub&lt;/p&gt;
&lt;p&gt;Private Sub Document_PageAdded(ByVal Page As IVPage)&lt;br /&gt;UpdateDateReviewed&lt;br /&gt;End Sub&lt;/p&gt;
&lt;p&gt;Private Sub Document_ShapeAdded(ByVal Shape As IVShape)&lt;br /&gt;UpdateDateReviewed&lt;br /&gt;End Sub&lt;/p&gt;
&lt;p&gt;Private Sub Document_ShapeExitedTextEdit(ByVal Shape As IVShape)&lt;br /&gt;UpdateDateReviewed&lt;br /&gt;End Sub&lt;/p&gt;
&lt;p&gt;Sub UpdateDateReviewed()&lt;/p&gt;
&lt;p&gt;Dim vsoShape As Visio.Shape&lt;br /&gt;Dim intPropRow As Integer&lt;/p&gt;
&lt;p&gt;Set vsoShape = ActivePage.PageSheet&lt;/p&gt;
&lt;p&gt;If vsoShape.CellExists(&amp;quot;Prop.DateRevised&amp;quot;, False) = False Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; intPropRow = vsoShape.AddRow(visSectionProp, visRowLast, visTagDefault)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vsoShape.CellsSRC(visSectionProp, intPropRow, visCustPropsLabel).FormulaU = &amp;quot;&amp;quot;&amp;quot;DateRevised&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vsoShape.CellsSRC(visSectionProp, intPropRow, visCustPropsValue).RowNameU = &amp;quot;DateRevised&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vsoShape.CellsSRC(visSectionProp, intPropRow, visCustPropsType).FormulaU = &amp;quot;5&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vsoShape.CellsSRC(visSectionProp, intPropRow, visCustPropsFormat).FormulaU = &amp;quot;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vsoShape.CellsSRC(visSectionProp, intPropRow, visCustPropsPrompt).FormulaU = &amp;quot;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vsoShape.CellsSRC(visSectionProp, intPropRow, visCustPropsValue).FormulaU = &amp;quot;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;End If&lt;/p&gt;
&lt;p&gt;vsoShape.Cells(&amp;quot;Prop.DateRevised&amp;quot;) = Format(Now(), &amp;quot;00000.00000&amp;quot;)&lt;/p&gt;
&lt;p&gt;End Sub&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1730710" width="1" height="1"&gt;</content><author><name>visio</name><uri>http://msmvps.com/members/visio/default.aspx</uri></author><category term="Visioisio" scheme="http://msmvps.com/blogs/visio/archive/tags/Visioisio/default.aspx" /><category term="Revision date" scheme="http://msmvps.com/blogs/visio/archive/tags/Revision+date/default.aspx" /><category term="page sheet" scheme="http://msmvps.com/blogs/visio/archive/tags/page+sheet/default.aspx" /><category term="custom properties" scheme="http://msmvps.com/blogs/visio/archive/tags/custom+properties/default.aspx" /></entry><entry><title>From Adobe Illustrator to Visio</title><link rel="alternate" type="text/html" href="/blogs/visio/archive/2009/09/28/from-adobe-illustrator-to-visio.aspx" /><id>/blogs/visio/archive/2009/09/28/from-adobe-illustrator-to-visio.aspx</id><published>2009-09-28T13:51:00Z</published><updated>2009-09-28T13:51:00Z</updated><content type="html">&lt;p&gt;One thing that got me hooked on Visio from the beginning was that you were not limited to the shapes that were supplied by the product, You could create shapes from scratch, modify existing shapes or wrap an image from any source into a Visio shape. So, I am always on the hunt for new shapes that are available on the internet. &lt;/p&gt;
&lt;p&gt;Recently, I came across a set of well made shapes and was able to get in touch with the creator. Though the shapes looked good, they did not have any of the smarts that can be associated with Visio shapes. The Visio&amp;nbsp;shapes were just foreign images that could not be changed or coloured. The shapes were originally created in Adobe Illustrator and imported into Visio. I tried using other export options from Illustrator, but none allowed me to ungroup the shapes in Visio so the shape can be disected into individual elements that be recombined.&lt;/p&gt;
&lt;p&gt;Thanks to Enric Ma&amp;ntilde;as, a PowerPoint MVP, I found out that it is possible to disect the shape by using PowerPoint. The file needs to be first saved as an EPS in Illustrator. The EPS file is then inserted into a new&amp;nbsp;PowerPoint slide and then saved as a WMF file. The WMF file is then inserted in to a Visio drawing and this new shape can then be ungrouped.&lt;/p&gt;
&lt;p&gt;So if you need to manipulate a shape created in Adobe Illustrator, use PowerPoint to convert an EPS file to a WMF file.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1727904" width="1" height="1"&gt;</content><author><name>visio</name><uri>http://msmvps.com/members/visio/default.aspx</uri></author><category term="Visio" scheme="http://msmvps.com/blogs/visio/archive/tags/Visio/default.aspx" /><category term="WMF" scheme="http://msmvps.com/blogs/visio/archive/tags/WMF/default.aspx" /><category term="Adobe Illustrator" scheme="http://msmvps.com/blogs/visio/archive/tags/Adobe+Illustrator/default.aspx" /><category term="PowerPoint" scheme="http://msmvps.com/blogs/visio/archive/tags/PowerPoint/default.aspx" /></entry><entry><title>Multiple copies while Duplex printing</title><link rel="alternate" type="text/html" href="/blogs/visio/archive/2009/09/21/multiple-copies-while-duplex-printing.aspx" /><id>/blogs/visio/archive/2009/09/21/multiple-copies-while-duplex-printing.aspx</id><published>2009-09-21T00:55:00Z</published><updated>2009-09-21T00:55:00Z</updated><content type="html">&lt;p&gt;Visio has a problem with duplex printing. &lt;/p&gt;
&lt;p&gt;If you ask for multiple copies while duplex printing, you only get one copy. This is rather annoying, but the problem is not with duplex printing. The issue is with the collate option. You can duplex print a Visio document and request mutiple copies and your document will print the correct number of pages, only if you do not select collate. Of course, the pile of paper generated is useless. What is printed on the front and back of the first piece of paper is two copies of page 1.&lt;/p&gt;
&lt;p&gt;There is a knowledge based article &lt;a href="http://support.microsoft.com/kb/924114"&gt;http://support.microsoft.com/kb/924114&lt;/a&gt;&amp;nbsp;but that indicates that the issue is that&amp;nbsp;collate is not checked. The only workable solution is to set the copies to 1. Sounds like a Henry Ford answer.&amp;nbsp; You can get any colour you like, as long as it is black. You can print as many copies as you like as long as the number of copies is 1.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1725311" width="1" height="1"&gt;</content><author><name>visio</name><uri>http://msmvps.com/members/visio/default.aspx</uri></author><category term="Visio" scheme="http://msmvps.com/blogs/visio/archive/tags/Visio/default.aspx" /><category term="Duplex" scheme="http://msmvps.com/blogs/visio/archive/tags/Duplex/default.aspx" /></entry><entry><title>Something New for Visio 2010 - Containers</title><link rel="alternate" type="text/html" href="/blogs/visio/archive/2009/08/22/something-new-for-visio-2010-containers.aspx" /><id>/blogs/visio/archive/2009/08/22/something-new-for-visio-2010-containers.aspx</id><published>2009-08-22T15:42:00Z</published><updated>2009-08-22T15:42:00Z</updated><content type="html">&lt;p&gt;Have you ever wanted to add an area around a group of shapes? For example, you want to identify a group of computers that belong to the draughting department? Simple, you just draw a shape around a group of shapes, but the problem arises when you want to expand or shrink the shape that encloses the group of shapes.&lt;/p&gt;
&lt;p&gt;With Visio 2010, is a new concept called &lt;strong&gt;containers&lt;/strong&gt; that will automatically stretch or shrink depending on the shapes contained.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1717406" width="1" height="1"&gt;</content><author><name>visio</name><uri>http://msmvps.com/members/visio/default.aspx</uri></author><category term="Visio 2010" scheme="http://msmvps.com/blogs/visio/archive/tags/Visio+2010/default.aspx" /><category term="containers" scheme="http://msmvps.com/blogs/visio/archive/tags/containers/default.aspx" /></entry><entry><title>MSO Shapes and Visio</title><link rel="alternate" type="text/html" href="/blogs/visio/archive/2009/08/22/mso-shapes-and-visio.aspx" /><id>/blogs/visio/archive/2009/08/22/mso-shapes-and-visio.aspx</id><published>2009-08-22T15:16:00Z</published><updated>2009-08-22T15:16:00Z</updated><content type="html">&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="line-height:115%;font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;Though not directly Visio related, I have been playing with converting the MSO shapes used in Word, Excel, PowerPoint and Publisher into Visio shapes. The shapes are similar to Visio shapes and include control handles. So far I have created a Visio stencil for the shapes and have added some of the smarts into the shapes. I have been able to create Visio drawings from MSO shapes in PowerPoint and transfer some of the settings for the shapes. The fun has been getting around the MSO*mixed types. (It basically indicates that you have to go down another path to search for your information)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="line-height:115%;font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="line-height:115%;font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;One thing I noticed is that five of the MSO shapes return the wrong shape type. They are:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table cellpadding="0" cellspacing="0" border="1" class="MsoTableGrid" style="border-collapse:collapse;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt;"&gt;
&lt;tbody&gt;
&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;"&gt;
&lt;td width="44" valign="top" style="padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:33.05pt;padding-right:5.4pt;padding-top:0in;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;border:black 1pt solid;"&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;110&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="144" valign="top" style="border-bottom:black 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:108.3pt;padding-right:5.4pt;border-top:black 1pt solid;border-right:black 1pt solid;padding-top:0in;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;"&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;msoShapeLineCallout2&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="39" valign="top" style="border-bottom:black 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:29pt;padding-right:5.4pt;border-top:black 1pt solid;border-right:black 1pt solid;padding-top:0in;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;"&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;109&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="201" valign="top" style="border-bottom:black 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:151.1pt;padding-right:5.4pt;border-top:black 1pt solid;border-right:black 1pt solid;padding-top:0in;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;"&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;msoShapeLineCallout1&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:1;"&gt;
&lt;td width="44" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:33.05pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:black 1pt solid;padding-top:0in;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;"&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;117&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="144" valign="top" style="border-bottom:black 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:108.3pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:black 1pt solid;padding-top:0in;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;msoShapeLineCallout1NoBorder&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="39" valign="top" style="border-bottom:black 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:29pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:black 1pt solid;padding-top:0in;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;113&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="201" valign="top" style="border-bottom:black 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:151.1pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:black 1pt solid;padding-top:0in;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;msoShapeLineCallout1AccentBar&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:2;"&gt;
&lt;td width="44" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:33.05pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:black 1pt solid;padding-top:0in;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;"&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;118&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="144" valign="top" style="border-bottom:black 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:108.3pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:black 1pt solid;padding-top:0in;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;msoShapeLineCallout2NoBorder&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="39" valign="top" style="border-bottom:black 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:29pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:black 1pt solid;padding-top:0in;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;113&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="201" valign="top" style="border-bottom:black 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:151.1pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:black 1pt solid;padding-top:0in;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;msoShapeLineCallout1AccentBar&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:3;"&gt;
&lt;td width="44" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:33.05pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:black 1pt solid;padding-top:0in;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;"&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;121&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="144" valign="top" style="border-bottom:black 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:108.3pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:black 1pt solid;padding-top:0in;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;msoShapeLineCallout1BorderandAccentBar&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="39" valign="top" style="border-bottom:black 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:29pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:black 1pt solid;padding-top:0in;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;109&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="201" valign="top" style="border-bottom:black 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:151.1pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:black 1pt solid;padding-top:0in;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;msoShapeLineCallout1&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:4;mso-yfti-lastrow:yes;"&gt;
&lt;td width="44" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:33.05pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:black 1pt solid;padding-top:0in;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;"&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;137&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="144" valign="top" style="border-bottom:black 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:108.3pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:black 1pt solid;padding-top:0in;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;msoShapeBalloon&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="39" valign="top" style="border-bottom:black 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:29pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:black 1pt solid;padding-top:0in;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;106&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="201" valign="top" style="border-bottom:black 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:151.1pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:black 1pt solid;padding-top:0in;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-alt:solid black .5pt;mso-border-left-themecolor:text1;mso-border-top-alt:solid black .5pt;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Calibri;"&gt;msoShapeRoundedRectangularCallout&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="line-height:115%;font-size:9pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1717396" width="1" height="1"&gt;</content><author><name>visio</name><uri>http://msmvps.com/members/visio/default.aspx</uri></author><category term="MSO shapes" scheme="http://msmvps.com/blogs/visio/archive/tags/MSO+shapes/default.aspx" /><category term="Visio" scheme="http://msmvps.com/blogs/visio/archive/tags/Visio/default.aspx" /></entry><entry><title>Visio 2010 - Developer Mode</title><link rel="alternate" type="text/html" href="/blogs/visio/archive/2009/08/17/visio-2010-developer-mode.aspx" /><id>/blogs/visio/archive/2009/08/17/visio-2010-developer-mode.aspx</id><published>2009-08-17T14:38:00Z</published><updated>2009-08-17T14:38:00Z</updated><content type="html">&lt;p&gt;With Office 2007, the main apps introduced the ribbon and with Office 2010, Office introduced the ability to customize the ribbon. Since the ribbon was a major shift in the UI experience, it made sense that&amp;nbsp; only the key apps should &amp;quot;test the waters&amp;quot; and the other apps should wait till the next release. It was basically a &amp;quot;too many cooks spoil the broth&amp;quot; scenerio.&lt;/p&gt;
&lt;p&gt;With Visio 2010, Visio acquired the Ribbon AND ribbon customization.&amp;nbsp; One problem with menus in Visio 2007 was their placement&amp;nbsp;was not optomized and it was possible to leave gaps. So the introduction of the ribbon meant a better placement of the buttons and only displaying the relevant ones. (Of course, relevancy&amp;nbsp;is subject to interpretation)&lt;/p&gt;
&lt;p&gt;With the introduction of the ribbon, there were some major changes in the UI. One noticable one is the removal of the &amp;quot;Use Developer Mode&amp;quot; checkbox in the Options menu. The user can now directly customize the ribbon to enable the buttons that were added by the old &amp;quot;Use Developer Mode&amp;quot; option checkbox.&lt;/p&gt;
&lt;p&gt;There is an alternate way to get to&amp;nbsp;code. On the View tab, the last group is Macros. You can then access or create VBA macros.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1716330" width="1" height="1"&gt;</content><author><name>visio</name><uri>http://msmvps.com/members/visio/default.aspx</uri></author><category term="Developer" scheme="http://msmvps.com/blogs/visio/archive/tags/Developer/default.aspx" /><category term="Visio 2010" scheme="http://msmvps.com/blogs/visio/archive/tags/Visio+2010/default.aspx" /><category term="Ribbon" scheme="http://msmvps.com/blogs/visio/archive/tags/Ribbon/default.aspx" /></entry><entry><title>VRU / IVR</title><link rel="alternate" type="text/html" href="/blogs/visio/archive/2009/08/04/vru-ivr.aspx" /><id>/blogs/visio/archive/2009/08/04/vru-ivr.aspx</id><published>2009-08-04T03:54:00Z</published><updated>2009-08-04T03:54:00Z</updated><content type="html">&lt;p&gt;A recent post in the newsgroups asked about a stencil for IVR. IVR - Interactive Voice Response - is the system we have known to love as the automated telephone system - Press 1 for customer service rep, 2 for sales and so on. A VRU Voice Response Unit is the computer that runs the software.&lt;/p&gt;
&lt;p&gt;In a past life I maintained an IVR system for a bank and of course, documented it with Visio. Except for a few specialized shapes, most of the shapes were from the flowchart stencil. With Visio 2007, some of the workflow shapes could have come in handy. So the specialized shapes I used were:&lt;/p&gt;
&lt;p&gt;A Decision Box - This box contained the prompt presented the user and ten connection points to the possible responses ( 0 to 9)&lt;/p&gt;
&lt;p&gt;A CSR shape - Customer Service Rep (aka operator) This was just a piece of clipart of an operator with a headset. Since this was a common destination when the user pressed 0, it was placed in many places on the flowchart. (I wonder if I can talk Visio Guy into creating one of his people shapes for this?).&lt;/p&gt;
&lt;p&gt;A manframe shape - The actual VRU was an OS2 box, but all the data was stored on a mainframe.&lt;/p&gt;
&lt;p&gt;A fax machine - One of the features we added was the ability to have your bank statement faxed to your fax machine.&lt;/p&gt;
&lt;p&gt;So I will try and put a VRU / IVR stencil together and post it on the Visio MVPS website. If anyone can come up with any additional shapes that would be useful for the stencil, let me know.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1712661" width="1" height="1"&gt;</content><author><name>visio</name><uri>http://msmvps.com/members/visio/default.aspx</uri></author><category term="Visio" scheme="http://msmvps.com/blogs/visio/archive/tags/Visio/default.aspx" /><category term="VRU" scheme="http://msmvps.com/blogs/visio/archive/tags/VRU/default.aspx" /><category term="stencil" scheme="http://msmvps.com/blogs/visio/archive/tags/stencil/default.aspx" /><category term="IVR" scheme="http://msmvps.com/blogs/visio/archive/tags/IVR/default.aspx" /></entry><entry><title>Polar Array - Part 2</title><link rel="alternate" type="text/html" href="/blogs/visio/archive/2009/08/04/polar-array-part-2.aspx" /><id>/blogs/visio/archive/2009/08/04/polar-array-part-2.aspx</id><published>2009-08-04T03:42:00Z</published><updated>2009-08-04T03:42:00Z</updated><content type="html">&lt;p&gt;It has been almost two years since I blogged, so it is time to dust off the blog.&lt;/p&gt;
&lt;p&gt;Today in the newsgroups someone asked about using the Polar Array VBA sample from the Visio MVP website, but rather than place a specific shapes multiple times, arrange the shapes that are selected.&lt;/p&gt;
&lt;p&gt;As usual, the original credit goes to Chris&lt;/p&gt;
&lt;p&gt;Sub PolarArray()&lt;br /&gt;&amp;#39; by Chris Roth&lt;br /&gt;Dim shp As Visio.Shape, shpObj As Visio.Shape, celObj As Visio.Cell&lt;br /&gt;Dim iNum As Integer, i As Integer&lt;br /&gt;Dim dRad As Double, dAngStart As Double, dAng As Double&lt;br /&gt;Dim x As Double, y As Double&lt;br /&gt;Dim VsoSelect As Visio.Selection&lt;br /&gt;Dim VsoShape As Visio.Shape&lt;/p&gt;
&lt;p&gt;&amp;#39; obtain the shape to be distributed&lt;br /&gt;Set shp = Visio.ActiveWindow.Selection(1)&lt;/p&gt;
&lt;p&gt;Const PI = 3.14159265358&lt;/p&gt;
&lt;p&gt;Set VsoSelect = Visio.ActiveWindow.Selection&lt;/p&gt;
&lt;p&gt;If VsoSelect.Count &amp;gt;&amp;nbsp;1 Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; iNum = VsoSelect.Count&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dRad = InputBox(&amp;quot;Enter the radius for the polar array in inches:&amp;quot;, &amp;quot;Polar Array&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dAngStart = InputBox(&amp;quot;Enter the first angle in degrees (0 deg = 3 o&amp;#39;clock):&amp;quot;, &amp;quot;Polar Array&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dAngStart = dAngStart * PI / 180 &amp;#39;Convert to radians&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dAng = 2 * PI / iNum&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For i = 1 To iNum&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x = dRad * Cos(dAngStart + dAng * (i - 1)) + 4.25&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; y = dRad * Sin(dAngStart + dAng * (i - 1)) + 5.5&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set VsoShape = VsoSelect(i)&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set shpObj = Visio.ActivePage.Drop(shp, x, y)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; VsoShape.Cells(&amp;quot;Pinx&amp;quot;).Formula = x&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; VsoShape.Cells(&amp;quot;piny&amp;quot;).Formula = y&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; rotate the shape - This only makes sense if this is a group of chairs around a table&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set celObj = VsoShape.Cells(&amp;quot;Angle&amp;quot;)&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp; celObj.Formula = Str(Int((i - 1) * 360 / iNum)) + &amp;quot;deg.&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next i&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Else&amp;nbsp;&amp;nbsp; &amp;#39; if only one&amp;nbsp;shape&amp;nbsp;is selected, then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; iNum = InputBox(&amp;quot;Enter the number of items in the array:&amp;quot;, &amp;quot;Polar Array&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dRad = InputBox(&amp;quot;Enter the radius for the polar array in inches:&amp;quot;, &amp;quot;Polar Array&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dAngStart = InputBox(&amp;quot;Enter the first angle in degrees (0 deg = 3 o&amp;#39;clock):&amp;quot;, &amp;quot;Polar Array&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dAngStart = dAngStart * PI / 180 &amp;#39;Convert to radians&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dAng = 2 * PI / iNum&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For i = 1 To iNum&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x = dRad * Cos(dAngStart + dAng * (i - 1)) + 4.25&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; y = dRad * Sin(dAngStart + dAng * (i - 1)) + 5.5&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set shpObj = Visio.ActivePage.Drop(shp, x, y)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; shpObj.Text = i&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; rotate the shape&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set celObj = shpObj.Cells(&amp;quot;Angle&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; celObj.Formula = Str(Int((i - 1) * 360 / iNum)) + &amp;quot;deg.&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next i&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1712656" width="1" height="1"&gt;</content><author><name>visio</name><uri>http://msmvps.com/members/visio/default.aspx</uri></author></entry><entry><title>Will that be Metric or Imperial?</title><link rel="alternate" type="text/html" href="/blogs/visio/archive/2007/09/21/will-that-be-metric-or-imperial.aspx" /><id>/blogs/visio/archive/2007/09/21/will-that-be-metric-or-imperial.aspx</id><published>2007-09-21T20:23:00Z</published><updated>2007-09-21T20:23:00Z</updated><content type="html">&lt;p&gt;For a long time Visio has supported stencils and templates in two different measurement system; Imperial (US) and Metric. Each template had a US version and a Metric version. So why two templates? The US templates were in in, ft, yds and the other imperial units and the Metric templates were in mm, cm, m and the other metric units. There was also an isue of the physical page size; Some of the standard sizes for the&amp;nbsp;US are letter, legal and tabloild while the metric sizes were the A format sizes like A3 and A4.&lt;/p&gt;
&lt;p&gt;So is it possible to have a single template that will handle both Imperial and Metric units and paper sizes? Yes, with a few minor changes, you can combine both units.&lt;/p&gt;
&lt;p&gt;One method to do this is to add a user defined cell to the document and use that variable to determine the system to use. To add a document level user defined cell, right click the top entry in the Drawing Explorer and select Show ShapeSheet or right click the drawing surface outside the drawing and hold the shift key while selecting Show ShapeSheet. If you do not hold down the shift key, you will get the shapesheet for the page. Add a rowl to the User Defined Cells section and name it something like UseMetric. Use a value of 0 for Metric units&amp;nbsp;and non zero for Imperial units.&lt;/p&gt;
&lt;p&gt;On each page set the PageHeight, PageWidth, PageScale and DrawingScale with a formula like.&lt;/p&gt;
&lt;p&gt;For Page Width set the content to:&amp;nbsp;&amp;nbsp;&amp;nbsp; = IF(TheDoc!User.UseMetric=0,210mm,8.5in)&lt;/p&gt;
&lt;p&gt;As you change the value of UseMetric, the PageWidth (and other qualities) will reflect the selected units.&lt;/p&gt;
&lt;p&gt;This will give you a document that will switch between a letter size drawing in inches and an A4 drawing in mm.&lt;/p&gt;
&lt;p&gt;The next step would be to add unit agnostic formulas to your shapes.&lt;/p&gt;
&lt;p&gt;If you already have background pages created in Imperial units and metric units, rather than trying to merge the two with formulas based on TheDoc!User.UseMetric, combine the two background pages by applying each page to a layer and use TheDoc!User.UseMetric to control the visibilty of each layer.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1208925" width="1" height="1"&gt;</content><author><name>visio</name><uri>http://msmvps.com/members/visio/default.aspx</uri></author><category term="Visio" scheme="http://msmvps.com/blogs/visio/archive/tags/Visio/default.aspx" /><category term="Metric" scheme="http://msmvps.com/blogs/visio/archive/tags/Metric/default.aspx" /><category term="template" scheme="http://msmvps.com/blogs/visio/archive/tags/template/default.aspx" /><category term="US" scheme="http://msmvps.com/blogs/visio/archive/tags/US/default.aspx" /></entry><entry><title>Whose your father?</title><link rel="alternate" type="text/html" href="/blogs/visio/archive/2007/06/03/whose-your-father.aspx" /><id>/blogs/visio/archive/2007/06/03/whose-your-father.aspx</id><published>2007-06-03T21:03:00Z</published><updated>2007-06-03T21:03:00Z</updated><content type="html">&lt;p&gt;Visio does provide an option for printing shapesheets but it is wordy. In the past I have used Excel to sort and manipulate the information, but this is time consuming and really does not give me everything I want.&amp;nbsp;One thing that was not easy to do was to find out whether a shapesheet was part of a group and if so, which group it belonged to. Being Visio, this is not a big problem. The object model is exposed and it is possible to write your own version of the shapesheet print Add-in with a routine to show the lineage of a shapesheet.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Given a Visio shape, this function will return a string that lists its&amp;#39; ancestors.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Private Function Heritage(shpObj As Visio.Shape) As String&lt;/p&gt;
&lt;p&gt;Dim Finished&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; As Boolean&lt;br /&gt;Dim tmpName&amp;nbsp;&amp;nbsp; As String&lt;br /&gt;Dim tmpString&amp;nbsp;&amp;nbsp; As String&lt;/p&gt;
&lt;p&gt;tmpName = shpObj.Name&lt;br /&gt;tmpString = tmpName&lt;/p&gt;
&lt;p&gt;Finished = False&lt;br /&gt;Do While Not Finished&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If ActivePage.Shapes(tmpName).Parent.Type = visTypeGroup Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tmpName = ActivePage.Shapes(tmpName).Parent.Name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tmpString = tmpName + &amp;quot; &amp;quot; + tmpString&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Finished = True&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Loop&lt;/p&gt;
&lt;p&gt;Heritage = tmpString&lt;/p&gt;
&lt;p&gt;End Function&lt;/p&gt;
&lt;p&gt;This sample code will eventually make it&amp;#39;s way over to &lt;a href="http://visio.mvps.org/VBA.htm"&gt;http://visio.mvps.org/VBA.htm&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=941033" width="1" height="1"&gt;</content><author><name>visio</name><uri>http://msmvps.com/members/visio/default.aspx</uri></author><category term="Visio" scheme="http://msmvps.com/blogs/visio/archive/tags/Visio/default.aspx" /><category term="Parent" scheme="http://msmvps.com/blogs/visio/archive/tags/Parent/default.aspx" /></entry><entry><title>Percentage Ruler</title><link rel="alternate" type="text/html" href="/blogs/visio/archive/2006/11/09/Percentage-Ruler.aspx" /><id>/blogs/visio/archive/2006/11/09/Percentage-Ruler.aspx</id><published>2006-11-09T16:42:00Z</published><updated>2006-11-09T16:42:00Z</updated><content type="html">&lt;p&gt;When I try to create Visio shapes from a sample image, I import the image into Visio and stretch it so it matches the scale of the drawing. I can then use the dimension shapes to &amp;quot;measure&amp;quot; the image.&lt;/p&gt;&lt;p&gt;Recently I came across a collection of shapes that had similar profiles, but the proportions varied. I needed a new kind of measuring tool, one that would display percentages. With Visio, this is relatively easy.&lt;/p&gt;&lt;p&gt;The shape is a simple line with a control handle with a user defined&amp;nbsp;field&amp;nbsp;set to &amp;quot;=GUARD(Controls.Point/Width)&amp;quot;. The text field for the line contains the user defined field.&amp;nbsp;The line is strectched across the distance that needs to be proportioned and the control handle is moved to various positions. The text of the line will show the percentage of the distance that the control handle is at. &lt;/p&gt;&lt;p&gt;I had considered constraining the control handle to the line, but the freedom of movement makes it very easy to &amp;quot;measure&amp;quot; irregular shapes.&lt;/p&gt;&lt;p&gt;John... Visio MVP&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=270141" width="1" height="1"&gt;</content><author><name>visio</name><uri>http://msmvps.com/members/visio/default.aspx</uri></author><category term="Visio" scheme="http://msmvps.com/blogs/visio/archive/tags/Visio/default.aspx" /><category term="ruler" scheme="http://msmvps.com/blogs/visio/archive/tags/ruler/default.aspx" /></entry><entry><title>Enhancing the Orgchart with different reporting lines</title><link rel="alternate" type="text/html" href="/blogs/visio/archive/2006/10/20/Enhancing-the-Orgchart-with-different-reporting-lines.aspx" /><id>/blogs/visio/archive/2006/10/20/Enhancing-the-Orgchart-with-different-reporting-lines.aspx</id><published>2006-10-20T02:21:00Z</published><updated>2006-10-20T02:21:00Z</updated><content type="html">&lt;p&gt;Over the summer I was asked if it was possible to have some of the reporting lines a different pattern. An interesting idea, but how do you mantain the feature when the Orgchart is imported and&amp;nbsp;exported? &lt;/p&gt;&lt;p&gt;For this feature to work the information had to be stored with the person at the bottom of the reporting relationship. The Custom Properties (Soon to be Shape Data) of each person was preserved over imports and exports and was the ideal location. So once the data was imported into Visio VBA code was run to check each 2d shape for a &amp;quot;Reporting Type&amp;quot; Custom Property and change the line pattern of their reporting line to match.&lt;/p&gt;&lt;p&gt;Sub ChangeReportingLines()&lt;/p&gt;&lt;p&gt;&amp;#39; Display connections on the page&lt;/p&gt;&lt;p&gt;Dim conObj&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; As Visio.Connect&lt;br /&gt;Dim i&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; As Integer&lt;br /&gt;Dim ReportingType&amp;nbsp; As String&lt;br /&gt;Dim vsoPage&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; As Visio.Page&lt;br /&gt;Dim VsoShp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; As Visio.Shape&lt;/p&gt;&lt;p&gt;For Each vsoPage In ActiveDocument.Pages&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each VsoShp In vsoPage.Shapes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Not VsoShp.OneD Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nrows = VsoShp.RowCount(Visio.visSectionProp)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For i = 0 To nrows - 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If VsoShp.CellsSRC(Visio.visSectionProp, i, visCustPropsLabel).ResultStr(Visio.visNone) = &amp;quot;ReportingType&amp;quot; Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ReportingType = VsoShp.CellsSRC(Visio.visSectionProp, i, visCustPropsValue).ResultStr(Visio.visNone)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each conObj In VsoShp.FromConnects&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If conObj.FromPart = visEnd Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug.Print &amp;quot;change to --&amp;gt; &amp;quot;; ReportingType&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select Case ReportingType&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case &amp;quot;Dotted&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conObj.FromSheet.CellsSRC(visSectionObject, visRowLine, visLinePattern).FormulaU = &amp;quot;3&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case &amp;quot;Dashed&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conObj.FromSheet.CellsSRC(visSectionObject, visRowLine, visLinePattern).FormulaU = &amp;quot;2&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case Else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug.Print ReportingType&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Select&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next conObj&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next i&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next VsoShp&lt;/p&gt;&lt;p&gt;Next vsoPage&lt;/p&gt;&lt;p&gt;End Sub&lt;/p&gt;&lt;p&gt;This can be taken further by trapping any changes to the line pattern through the UI and updating the Custom Property to match.&lt;/p&gt;&lt;p&gt;John... Visio MVP&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=190401" width="1" height="1"&gt;</content><author><name>visio</name><uri>http://msmvps.com/members/visio/default.aspx</uri></author><category term="Visio" scheme="http://msmvps.com/blogs/visio/archive/tags/Visio/default.aspx" /><category term="Orgchart" scheme="http://msmvps.com/blogs/visio/archive/tags/Orgchart/default.aspx" /></entry><entry><title>Visio's other file format - Report Definition files *.VRD</title><link rel="alternate" type="text/html" href="/blogs/visio/archive/2006/10/15/Visio_2700_s-other-file-format-_2D00_-Report-Definition-files-_2A00_.VRD.aspx" /><id>/blogs/visio/archive/2006/10/15/Visio_2700_s-other-file-format-_2D00_-Report-Definition-files-_2A00_.VRD.aspx</id><published>2006-10-15T22:47:00Z</published><updated>2006-10-15T22:47:00Z</updated><content type="html">&lt;p&gt;It has been a long standing fact that though there were several Visio file tpes; stencils, drawing, templates and workspaces, there was a only one Visio file format. Several versions ago, a new file format crept into the Visio file format. Visio added a reporting facility that used a seperate file to store information about how to create the report.&lt;/p&gt;&lt;p&gt;About the same time, Visio gave the Visio user the oppurtunity to save Visio drawings in XML format. So, the information in the Visio Report Definition (VRD) files is also stored in XML format. For Visio 2003, the third version of the VRD, schemas were created.&amp;nbsp; (schemas-microsoft-com:office:visio:reportdefinition).&lt;/p&gt;&lt;p&gt;The VRD file is divided into several sections. The first section sets basic information for the report, the title, the description.&lt;/p&gt;&lt;p&gt;The second section, a collection of &amp;lt;VisioRptDefField&amp;gt;s, describes the fields to be used, the column headers and the order.&lt;/p&gt;&lt;p&gt;The third section, a collection of &amp;lt;VisioRptDefFilter&amp;gt;s, describes the filters that would apply to seect the information for the report.&lt;/p&gt;&lt;p&gt;The fourth section, &amp;lt;VisioRptDefGroup&amp;gt;, describes how the records are grouped.&lt;/p&gt;&lt;p&gt;The fifth section, a collection of&amp;nbsp;&amp;lt;VisioRptDefSort&amp;gt;s, describe how the information is sorted.&lt;/p&gt;&lt;p&gt;For Visio 2007, there are no new or deleted reports and the only changes are very, very minor corrections to the reports&amp;#39; description. &lt;/p&gt;&lt;p&gt;So what is the point of knowing this? I have yet to see a request in the Visio newsgroups for automating report creation, but creating or modifying XML will be far easier than trying to control the wizard by Sendkey. &lt;/p&gt;&lt;p&gt;John... Visio MVP&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=179931" width="1" height="1"&gt;</content><author><name>visio</name><uri>http://msmvps.com/members/visio/default.aspx</uri></author><category term="Visio" scheme="http://msmvps.com/blogs/visio/archive/tags/Visio/default.aspx" /><category term="VRD" scheme="http://msmvps.com/blogs/visio/archive/tags/VRD/default.aspx" /><category term="XML" scheme="http://msmvps.com/blogs/visio/archive/tags/XML/default.aspx" /><category term="Report Defintion" scheme="http://msmvps.com/blogs/visio/archive/tags/Report+Defintion/default.aspx" /></entry><entry><title>How do Borders and Title shapes stretch to fit the page?</title><link rel="alternate" type="text/html" href="/blogs/visio/archive/2006/04/23/how-do-borders-and-title-shapes-stretch-to-fit-the-page.aspx" /><id>/blogs/visio/archive/2006/04/23/how-do-borders-and-title-shapes-stretch-to-fit-the-page.aspx</id><published>2006-04-23T12:31:00Z</published><updated>2006-04-23T12:31:00Z</updated><content type="html">&lt;p&gt;&lt;font face="Arial"&gt;When dropping a border or title shape on a page, it automatically stretches to fit the page, but if you look at the shapesheet for the dropped shape, Width and Height are fixed. How do they do that?&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;The trick is that the shape on the stencil has an EventDrop cell that tells Visio to set the values of Width, Height, PinX and PinY to fixed values&amp;nbsp;when the shape is dropped on a page. It also tells Visio to clear the EventDrop cell so the process can not be repeated by the copy.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;You can find samples of these shapes by&amp;nbsp;looking in the &amp;quot;Background&amp;quot;&amp;nbsp;&amp;quot;Border and Titles&amp;quot; stencils. When you look ath these shapes, you will find that these shapes define their size based on the page size using the following formula:&lt;br /&gt;&lt;br /&gt;Width&amp;nbsp;=ThePage!PageWidth-4*User.PageMargin&lt;br /&gt;Height=ThePage!PageHeight-4*User.PageMargin&lt;br /&gt;PinX=ThePage!PageWidth*0.5&lt;br /&gt;PinY=ThePage!PageHeight*0.5&lt;br /&gt;&lt;br /&gt;The value for the PageMargin row in the User Section is a bit involved to repeat here, but it sets the margin off the shape based on the scaling factors in use.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;The EventDrop cell uses SETF and GETF to assign the initial formula to the four cells and then replace it with the formulas value. I have broken the formula into its&amp;#39; five components to make it more readable. In reality, the formula in the EventDrop cell below is one long string.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;=SETF(GetRef(Width),ThePage!PageWidth-4*User.PageMargin)&lt;br /&gt;+SETF(GetRef(Height),ThePage!PageHeight-4*User.PageMargin)&lt;br /&gt;+SETF(GetRef(PinX),ThePage!PageWidth*0.5)&lt;br /&gt;+SETF(GetRef(PinY),ThePage!PageHeight*0.5)&lt;br /&gt;+SETF(&amp;quot;EventDrop&amp;quot;,0)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;The&amp;nbsp;final SETF clears the EventDrop cell.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;A similar method is used for Background pages, but the formulas are not cleared&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Width&amp;nbsp;=GUARD(ThePage!PageWidth)&lt;br /&gt;Height=GUARD(ThePage!PageHeight)&lt;br /&gt;PinX=GUARD(Width/2)&lt;br /&gt;PinY=GUARD(Height/2)&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Unlike the Borders and Titles shapes, the Background shape needs to run an add-on&amp;nbsp;to place the shape. The EventDrop cell contains:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;=RUNADDON(&amp;quot;Make Background&amp;quot;)+SETF(&amp;quot;EventDrop&amp;quot;,0)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;The &amp;quot;Make Background&amp;quot;&amp;nbsp;is a Private add-on which will create a background page called VBackground, place and resize the shape and then add the background page&amp;nbsp;reference to the foreground page.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;John...&amp;nbsp;&amp;nbsp;&amp;nbsp; Visio MVP&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=92232" width="1" height="1"&gt;</content><author><name>visio</name><uri>http://msmvps.com/members/visio/default.aspx</uri></author><category term="Visio" scheme="http://msmvps.com/blogs/visio/archive/tags/Visio/default.aspx" /><category term="Orgchart" scheme="http://msmvps.com/blogs/visio/archive/tags/Orgchart/default.aspx" /></entry><entry><title>The Bowness of a Circular Arc</title><link rel="alternate" type="text/html" href="/blogs/visio/archive/2006/04/05/the-bowness-of-a-circular-arc.aspx" /><id>/blogs/visio/archive/2006/04/05/the-bowness-of-a-circular-arc.aspx</id><published>2006-04-05T17:16:00Z</published><updated>2006-04-05T17:16:00Z</updated><content type="html">&lt;p&gt;To create a circular arc in a shapesheet&amp;#39;s Geometry section, requires the specification of where the arc ends and a cell called &amp;quot;A&amp;quot; that holds the measurement of how much the arc differs from a straight line between the end points of the arc. The deflection indicates how much the arc bows. It is possible to fragment a circular shape to get an idea of a value of &amp;quot;A&amp;quot;, but it is a value not a formula.&lt;/p&gt;
&lt;p&gt;So what is a formula to describe the content of the &amp;quot;A&amp;quot; cell? To determine a formula, you need to revisit your grade school trigonometry notes. A line that connects two points a circle is called a chord and has a few special properties. The largest chord passes through the center of the circle and is called the diameter. A triangle formed by the chord and the center of the circle forms an Isosceles triangle. The angles at either end of the chord are identical. If you use the half way point on the chord, call it B, to bisect the triangle through the center of the circle, call it C, you end up with two identical right angles triangles.&lt;/p&gt;
&lt;p&gt;The length from B to C divided by the hypotenuse of the right angle triangle&amp;nbsp;is the sine of the angle of the right angle triangle at the center of the circle. In this case, the hypotenuse is the radius of the circle and the angle is half the value of the angle formd by Isosceles triangle.&lt;/p&gt;
&lt;p&gt;So&amp;nbsp;the length of BC is:&amp;nbsp;&amp;nbsp;Radius x Cosine (angle/2).&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;So&amp;nbsp;the formula for cell &amp;quot;A&amp;quot; is:&amp;nbsp; Radius - Radius times Cosine (angle/2)&amp;nbsp; or Radius (1 - Cosine(angle/2))&lt;/p&gt;
&lt;p&gt;John... Visio MVP&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=89440" width="1" height="1"&gt;</content><author><name>visio</name><uri>http://msmvps.com/members/visio/default.aspx</uri></author><category term="Visio" scheme="http://msmvps.com/blogs/visio/archive/tags/Visio/default.aspx" /><category term="Bowness" scheme="http://msmvps.com/blogs/visio/archive/tags/Bowness/default.aspx" /><category term="Circular Arc" scheme="http://msmvps.com/blogs/visio/archive/tags/Circular+Arc/default.aspx" /></entry><entry><title>Creating Automation Friendly Visio diagrams</title><link rel="alternate" type="text/html" href="/blogs/visio/archive/2006/03/05/85513.aspx" /><id>/blogs/visio/archive/2006/03/05/85513.aspx</id><published>2006-03-05T17:17:00Z</published><updated>2006-03-05T17:17:00Z</updated><content type="html">&lt;P&gt;About a week ago I was asked if it was possible to save the information from a hand drawing Orgchart (one done without the wizard). The simple answer was yes, but with a few caveats. It would not be an easy task to extract all the information from the diagram.&lt;/P&gt;
&lt;P&gt;Visio allows the user two views of their diagram; the one most people are familiar with is the one that appears on the screen or the printed page; the second is what a program can "see" of the drawing through automation. What may appear logical in the diagram, may not actually be the true representation. For example, the ethernet shape in the network stencil has only eight connection points. By dropping a second ethernet shape on top of the first, it appears that there is a single ethernet shape with sixteen connection points. From the automation side, there would still be two seperate ethernet shapes.&lt;/P&gt;
&lt;P&gt;So here are some guidelines for creating Visio diagrams, not necessarily orgcharts, so that they are more automation friendly.&lt;/P&gt;
&lt;P&gt;The first suggestion is to standardize on the shapes. It is a lot easier for an automation routine to understand a drawing if all similar shapes have the same master. For example, most diagrams contain extra shapes in addition to the ones used for the connected diagram. There may be legends, title blocks, side comments and company identifiers. Thses shapes can be identified by the fact that they are unconnected, but it would be easier if the automation routine was looking for specific shapes.&lt;/P&gt;
&lt;P&gt;Background pages would reduce the number of unconnected shapes on the foreground pages. It would add consistency to the drawings by making sure that common information appears in the same location on each page.&lt;/P&gt;
&lt;P&gt;If you are creating your own shapes, keep them as simple as possible. Do not avoid grouped shapes, but make sure they are necessary. Each group shape is a collection of shapes and once one is found, this new collection of shapes has to be processed. Most shape features (connection points, custom properties and various geometry sections) can be contained in a single shape. The only real need for grouping shapes is to add secondary colours, line formats or text blocks.&lt;/P&gt;
&lt;P&gt;One of the caveats on the drawing I saw was how was it possible to extract the name and position as seperate items from the OrgChart. Luckily in the example, though the two pieces of information are in the same text block, each had a different format (One was in bold). Using the Characters collection in Visio makes it possible to seperate the two strings. If starting from scratch, it would have been easier to use custom properties and reference the custom properties from the text block.&lt;/P&gt;
&lt;P&gt;When connecting shapes, make sure the connection goes to the connection point on the logical shape. I have seen some shapes that appear to connected, but in fact, the free end of it's connecting line is just sitting near one of the other lines. In another example, a group of vertically stacked individuals appear to be connected to a supervisor, but in fact each shape is connected to the shape above it rather than to the logical shape, the supervisor.&lt;/P&gt;
&lt;P&gt;Connecting lines are 1-d shapes and have a beginning and an end. Be consistent as to whether the supervisor is at the beginning or the end of the line. I'll leave it to the academics as to which one it should be.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=85513" width="1" height="1"&gt;</content><author><name>visio</name><uri>http://msmvps.com/members/visio/default.aspx</uri></author></entry><entry><title>Visio's Most Useful Tool - The Macro Recorder</title><link rel="alternate" type="text/html" href="/blogs/visio/archive/2006/03/03/visio-s-most-useful-tool-the-macro-recorder.aspx" /><id>/blogs/visio/archive/2006/03/03/visio-s-most-useful-tool-the-macro-recorder.aspx</id><published>2006-03-03T16:16:00Z</published><updated>2006-03-03T16:16:00Z</updated><content type="html">&lt;p&gt;Finally, with the release of Visio 2003, came Visio&amp;#39;s most useful tool&amp;nbsp;for development; the macro recorder. By clicking the record button it is possible to quickly see how various Visio tasks can be translated into VBA. The Help file that comes with Visio is useful for explaining the details of a command, but there is not enough examples explaining how to string several commands together, the macro recorder fills in this gap.&lt;/p&gt;
&lt;p&gt;For example, to simply answer the question; &amp;quot;How&amp;nbsp;do you create two shapes &amp;nbsp;and connect them together using VBA?&amp;quot; The macro recorder will generate the following macro.&lt;/p&gt;
&lt;p&gt;Sub Macro1()&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Application.ActiveWindow.Page.DrawRectangle 1#, 10#, 2#, 9#&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim vsoCharacters1 As Visio.Characters&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set vsoCharacters1 = Application.ActiveWindow.Page.Shapes.ItemFromID(1).Characters&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vsoCharacters1.Begin = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vsoCharacters1.End = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vsoCharacters1.Text = &amp;quot;John&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Application.ActiveWindow.Page.DrawRectangle 3#, 10#, 4#, 9#&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim vsoCharacters2 As Visio.Characters&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set vsoCharacters2 = Application.ActiveWindow.Page.Shapes.ItemFromID(2).Characters&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vsoCharacters2.Begin = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vsoCharacters2.End = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vsoCharacters2.Text = &amp;quot;Mary&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim UndoScopeID3 As Long&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UndoScopeID3 = Application.BeginUndoScope(&amp;quot;Drop On Page&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Application.Windows.ItemEx(&amp;quot;atest.vsd&amp;quot;).Activate&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Application.ActiveWindow.Page.Drop Application.Documents.Item(&amp;quot;C:\DOCUME~1\John\MYDOCU~1\VISIOC~1\atest.vsd&amp;quot;).Masters.ItemU(&amp;quot;Dynamic connector&amp;quot;), 0#, 0#&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim vsoCell1 As Visio.Cell&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim vsoCell2 As Visio.Cell&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set vsoCell1 = Application.ActiveWindow.Page.Shapes.ItemFromID(3).CellsU(&amp;quot;BeginX&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set vsoCell2 = Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(1, 1, 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vsoCell1.GlueTo vsoCell2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set vsoCell1 = Application.ActiveWindow.Page.Shapes.ItemFromID(3).CellsU(&amp;quot;EndX&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set vsoCell2 = Application.ActiveWindow.Page.Shapes.ItemFromID(2).CellsSRC(1, 1, 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vsoCell1.GlueTo vsoCell2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Application.EndUndoScope UndoScopeID3, True&lt;/p&gt;
&lt;p&gt;End Sub&lt;/p&gt;
&lt;p&gt;That sure looks like a mouthful, but it can quickly reduced to a more manage size by a few simple edits.&lt;/p&gt;
&lt;p&gt;The macro recorder will record the actions taken and the extra code required to undo the changes. This extra code is easily identified and can be quickly removed. Each block of undo code uses a variable with a name like UndoScopeIDn, where n is a number that gets incremented for each undo bloc. Each block contains three commands; a Dim, Application.BeginUndoScope and a Application.EndUndoScope statement. These statements can be removed.&lt;/p&gt;
&lt;p&gt;The references to Application.ActiveWindow.Page can be replaced with a reference to ActivePage.&lt;/p&gt;
&lt;p&gt;The macro recorder uses the more formal form of Shapes.ItemFromID(1), but this can be simplified to Shapes(1).&lt;/p&gt;
&lt;p&gt;For text handling you will probably find something like:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set vsoCharacters1 = ActivePage.Shapes(1).Characters&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vsoCharacters1.Begin = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vsoCharacters1.End = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vsoCharacters1.Text = &amp;quot;John&amp;quot;&lt;/p&gt;
&lt;p&gt;This is useful if you are manipulating the shapes text, but if, as in this case, you are replacing the entire text,&amp;nbsp;this long winded block of text can be replaced with: &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ActivePage.Shapes(1).Text = &amp;quot;John&amp;quot;&lt;/p&gt;
&lt;p&gt;Now, the macro looks like:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Sub Macro1()&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ActivePage.DrawRectangle 1#, 10#, 2#, 9#&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ActivePage.Shapes(1).Text = &amp;quot;John&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ActivePage.DrawRectangle 3#, 10#, 4#, 9#&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ActivePage.Shapes(2).Text = &amp;quot;Mary&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Application.Windows.ItemEx(&amp;quot;atest.vsd&amp;quot;).Activate&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ActivePage.Drop Application.Documents.Item(&amp;quot;C:\DOCUME~1\John\MYDOCU~1\VISIOC~1\atest.vsd&amp;quot;).Masters.ItemU(&amp;quot;Dynamic connector&amp;quot;), 0#, 0#&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim vsoCell1 As Visio.Cell&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim vsoCell2 As Visio.Cell&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set vsoCell1 = ActivePage.Shapes(3).CellsU(&amp;quot;BeginX&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set vsoCell2 = ActivePage.Shapes(1).CellsSRC(1, 1, 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vsoCell1.GlueTo vsoCell2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set vsoCell1 = ActivePage.Shapes(3).CellsU(&amp;quot;EndX&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set vsoCell2 = ActivePage.Shapes(2).CellsSRC(1, 1, 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vsoCell1.GlueTo vsoCell2&lt;/p&gt;
&lt;p&gt;End Sub&lt;/p&gt;
&lt;p&gt;This makes it a lot easier to understand the generated code and relate it back to the information that is provided in the help file.&lt;/p&gt;
&lt;p&gt;John... Visio MVP&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=85364" width="1" height="1"&gt;</content><author><name>visio</name><uri>http://msmvps.com/members/visio/default.aspx</uri></author><category term="Visio" scheme="http://msmvps.com/blogs/visio/archive/tags/Visio/default.aspx" /><category term="macro recorder" scheme="http://msmvps.com/blogs/visio/archive/tags/macro+recorder/default.aspx" /></entry><entry><title>Pop up text on a document saved as HTML</title><link rel="alternate" type="text/html" href="/blogs/visio/archive/2006/01/11/pop-up-text-on-a-document-saved-as-html.aspx" /><id>/blogs/visio/archive/2006/01/11/pop-up-text-on-a-document-saved-as-html.aspx</id><published>2006-01-11T21:18:00Z</published><updated>2006-01-11T21:18:00Z</updated><content type="html">&lt;p&gt;&lt;span style="font-family:Arial;"&gt;Thanks to Visio&amp;#39;s Mark Nelson for the following tip:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Arial;"&gt;You can add the User.visEquivTitle cell to your shape and provide a string that will display as a tooltip in the web output. The shape must also have at least one custom property for the tooltip to be visible.&lt;br /&gt;&lt;br /&gt;Steps:&lt;br /&gt;1) Select the shape in your drawing that you want to add a web tooltip for&lt;br /&gt;2) Go to Window &amp;gt; Show Shapesheet&lt;br /&gt;3) Go to Insert &amp;gt; Section, check User-defined cells and click OK&lt;br /&gt;4) In the newly created section, click on the row name User.Row_1 to select the title of the row&lt;br /&gt;5) Type visEquivTitle and press Enter - you should now see User.visEquivTitle for the row&lt;br /&gt;6) In the Value cell of that row, enter the text you want to display surrounded by quotes (e.g. &amp;quot;Hello World&amp;quot;)&lt;br /&gt;7) If you instead want to display the same tooltip as the Shape ScreenTip enter&amp;nbsp; =Comment&amp;nbsp;&amp;nbsp;&amp;nbsp; (no quotes)&lt;br /&gt;8) Go to Insert &amp;gt; Section, check Custom properties and click OK&lt;br /&gt;9) You can fill in the custom property Label and Value if you want this information to be visible&lt;br /&gt;10) If you don&amp;#39;t want the custom property to be visible, enter TRUE in the Invisible cell&lt;br /&gt;11) Close the Shapesheet window and repeat for any other shape you like&lt;br /&gt;12) Choose File &amp;gt; Save as Web Page to create the HTML output&lt;br /&gt;&lt;br /&gt;As you can see this is a bit involved.&amp;nbsp; The capability was designed more as a developer feature than an end user feature.&amp;nbsp; I recommend tying the Shape ScreenTip to the User cell so that you see the same tooltip in both Visio and the web output.&amp;nbsp; It should also be possible to use Macro Recorder to automate these steps.&amp;nbsp; If your shape has a custom property but does not have the User.visEquivTitle cell, Visio will display the shape&amp;#39;s text in a tooltip instead.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=80813" width="1" height="1"&gt;</content><author><name>visio</name><uri>http://msmvps.com/members/visio/default.aspx</uri></author><category term="Visio" scheme="http://msmvps.com/blogs/visio/archive/tags/Visio/default.aspx" /><category term="Pop up text" scheme="http://msmvps.com/blogs/visio/archive/tags/Pop+up+text/default.aspx" /><category term="HTML" scheme="http://msmvps.com/blogs/visio/archive/tags/HTML/default.aspx" /></entry></feed>