Skip to content
  • Home
  • Work
  • About
  • Blog
  • Contact

Enhancing Visio Event Monitor Output

John Goldsmith's profile image

John Goldsmith

11 February 2019
  • Code
  • ShapeSheet

The Visio Event Monitor that's part of the SDK is a great tool for understanding how Visio works and the events that are firing away while you work. So in this post I thought I'd demonstrate a quick technique for making the output a little easier to read.

Standard output

By way of an example suppose you start Visio, open the Event Monitor tool and then create a new document based on the Basic Flowchart template and drop Start/End and Decision shapes onto the page.

After dropping the shapes you should see output in the monitor window that looks something like this:

1279 AppActivated
1618 > EnterScope  [1246;0;Drop On Page;526436]
1620 | MasterAdded Process  [/doc=1 /master=2]
1621 | CellChanged Process!LineWeight 0.2500 pt = THEMEVAL("LineWeight",0.24 pt)  [/doc=1 /page=1 /shape=Sheet.2 /shapeu=Sheet.2 /sec=1 /row=2 /col=0]
1622 | CellChanged Process!LineColor RGB(200, 200, 200) = THEMEVAL("LineColor",RGB(0,0,0))  [/doc=1 /page=1 /shape=Sheet.2 /shapeu=Sheet.2 /sec=1 /row=2 /col=1]
1623 | CellChanged Process!FillBkgnd RGB(77, 77, 77) = THEMEVAL("FillColor2",15)  [/doc=1 /page=1 /shape=Sheet.2 /shapeu=Sheet.2 /sec=1 /row=3 /col=1]
1624 | CellChanged Process!Char.Color RGB(254, 255, 255) = THEMEVAL("TextColor",RGB(0,0,0))  [/doc=1 /page=1 /shape=Sheet.2 /shapeu=Sheet.2 /sec=3 /row=0 /col=1]
1625 | ShapeAdded Process  [/doc=1 /page=1 /shape=Sheet.2 /shapeu=Sheet.2]
1625 | SelectionAdded Process  [/doc=1 /page=1]
1626 | SelectionChanged window[1] Drawing2 Page-1 subType is 128  [/hwnd=526436]
1627 | MasterAdded Dynamic connector  [/doc=1 /master=3]
1628 | CellChanged Dynamic connector!LineWeight 1.0000 pt = THEMEVAL("ConnectorWeight")  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=2 /col=0]
1629 | CellChanged Dynamic connector!LineColor RGB(70, 114, 196) = THEMEVAL("ConnectorColor",0)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=2 /col=1]
1630 | CellChanged Dynamic connector!EndArrow 4 = THEMEVAL("ConnectorEnd")  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=2 /col=6]
1631 | ShapeAdded Dynamic connector  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3]
1631 | SelectionAdded Dynamic connector  [/doc=1 /page=1]
1632 | FormulaChanged Process!ObjType 1 = 1  [/doc=1 /page=1 /shape=Sheet.2 /shapeu=Sheet.2 /sec=1 /row=17 /col=13]
1633 | FormulaChanged Start/End!ObjType 1 = 1  [/doc=1 /page=1 /shape=Sheet.1 /shapeu=Sheet.1 /sec=1 /row=17 /col=13]
1634 | FormulaChanged Dynamic connector!BegTrigger 2 = _XFTRIGGER('Start/End'!EventXFMod)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=17 /col=11]
1634 | CellChanged Dynamic connector!BegTrigger 2 = _XFTRIGGER('Start/End'!EventXFMod)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=17 /col=11]
1635 | FormulaChanged Dynamic connector!WalkPreference 0 = 0  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=17 /col=10]
1636 | FormulaChanged Dynamic connector!BeginX 87.5000 mm = _WALKGLUE(BegTrigger,EndTrigger,WalkPreference)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=4 /col=0]
1636 | CellChanged Dynamic connector!BeginX 87.5000 mm = _WALKGLUE(BegTrigger,EndTrigger,WalkPreference)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=4 /col=0]
1637 | FormulaChanged Dynamic connector!BeginY 130.0000 mm = _WALKGLUE(BegTrigger,EndTrigger,WalkPreference)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=4 /col=1]
1637 | CellChanged Dynamic connector!BeginY 130.0000 mm = _WALKGLUE(BegTrigger,EndTrigger,WalkPreference)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=4 /col=1]
1638 | ConnectionsAdded Dynamic connector Start/End /autoconnect=4  [/doc=1 /page=1]
1639 | FormulaChanged Dynamic connector!EndTrigger 2 = _XFTRIGGER(Process!EventXFMod)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=17 /col=12]
1639 | CellChanged Dynamic connector!EndTrigger 2 = _XFTRIGGER(Process!EventXFMod)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=17 /col=12]
1640 | FormulaChanged Dynamic connector!EndX 102.5000 mm = _WALKGLUE(EndTrigger,BegTrigger,WalkPreference)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=4 /col=2]
1640 | CellChanged Dynamic connector!EndX 102.5000 mm = _WALKGLUE(EndTrigger,BegTrigger,WalkPreference)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=4 /col=2]
1641 | FormulaChanged Dynamic connector!EndY 130.0000 mm = _WALKGLUE(EndTrigger,BegTrigger,WalkPreference)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=4 /col=3]
1641 | CellChanged Dynamic connector!EndY 130.0000 mm = _WALKGLUE(EndTrigger,BegTrigger,WalkPreference)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=4 /col=3]
1642 | ConnectionsAdded Dynamic connector Process /autoconnect=4  [/doc=1 /page=1]
1643 | CellChanged Dynamic connector!PinX 95.0000 mm = GUARD((BeginX+EndX)/2)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=1 /col=0]
1644 | FormulaChanged Dynamic connector!Width 15.0000 mm = GUARD(EndX-BeginX)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=1 /col=2]
1644 | CellChanged Dynamic connector!Width 15.0000 mm = GUARD(EndX-BeginX)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=1 /col=2]
1645 | CellChanged Dynamic connector!PinY 130.0000 mm = GUARD((BeginY+EndY)/2)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=1 /col=1]
1646 | FormulaChanged Dynamic connector!Height 5.0000 mm = GUARD(5 mm)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=1 /col=3]
1646 | CellChanged Dynamic connector!Height 5.0000 mm = GUARD(5 mm)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=1 /col=3]
1647 | CellChanged Dynamic connector!LocPinX 7.5000 mm = GUARD(Width*0.5)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=1 /col=4]
1648 | CellChanged Dynamic connector!LocPinY 2.5000 mm = GUARD(Height*0.5)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=1 /col=5]
1649 | > EnterScope  [1493;0;Layout Dynamic;0]
1650 | | FormulaChanged Dynamic connector!Geometry1.NoFill TRUE = TRUE  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=0 /col=0]
1651 | | FormulaChanged Dynamic connector!Geometry1.NoLine FALSE = FALSE  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=0 /col=1]
1652 | | FormulaChanged Dynamic connector!Geometry1.NoShow FALSE = FALSE  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=0 /col=2]
1653 | | FormulaChanged Dynamic connector!Geometry1.NoSnap FALSE = FALSE  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=0 /col=3]
1654 | | FormulaChanged Dynamic connector!Geometry1.NoQuickDrag FALSE = FALSE  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=0 /col=5]
1655 | | FormulaChanged Dynamic connector!Geometry1.X1 0.0000 mm = 0 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=1 /col=0]
1656 | | FormulaChanged Dynamic connector!Geometry1.Y1 2.5000 mm = 2.5 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=1 /col=1]
1656 | | CellChanged Dynamic connector!Geometry1.Y1 2.5000 mm = 2.5 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=1 /col=1]
1657 | | FormulaChanged Dynamic connector!Geometry1.X2 15.0000 mm = 15 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=2 /col=0]
1657 | | CellChanged Dynamic connector!Geometry1.X2 15.0000 mm = 15 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=2 /col=0]
1658 | | FormulaChanged Dynamic connector!Geometry1.Y2 2.5000 mm = 2.5 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=2 /col=1]
1658 | | CellChanged Dynamic connector!Geometry1.Y2 2.5000 mm = 2.5 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=2 /col=1]
1659 | | FormulaChanged Dynamic connector!Geometry1.X3  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=3 /col=0]
1659 | | CellChanged Dynamic connector!Geometry1.X3  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=3 /col=0]
1660 | | FormulaChanged Dynamic connector!Geometry1.Y3  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=3 /col=1]
1660 | | CellChanged Dynamic connector!Geometry1.Y3  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=3 /col=1]
1661 | | FormulaChanged Dynamic connector!ConFixedCode 0 = 0  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=23 /col=12]
1662 | | FormulaChanged Dynamic connector!Controls.TextPosition 7.5000 mm = 7.5000002086163 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=9 /row=0 /col=0]
1662 | | CellChanged Dynamic connector!Controls.TextPosition 7.5000 mm = 7.5000002086163 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=9 /row=0 /col=0]
1663 | | CellChanged Dynamic connector!Controls.TextPosition.XDyn 7.5000 mm = Controls.TextPosition  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=9 /row=0 /col=2]
1664 | | CellChanged Dynamic connector!TxtPinX 7.5000 mm = SETATREF(Controls.TextPosition)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=12 /col=0]
1665 | | FormulaChanged Dynamic connector!Controls.TextPosition.Y 2.5000 mm = 2.4999999433756 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=9 /row=0 /col=1]
1665 | | CellChanged Dynamic connector!Controls.TextPosition.Y 2.5000 mm = 2.4999999433756 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=9 /row=0 /col=1]
1666 | | CellChanged Dynamic connector!Controls.TextPosition.YDyn 2.5000 mm = Controls.TextPosition.Y  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=9 /row=0 /col=3]
1667 | | CellChanged Dynamic connector!TxtPinY 2.5000 mm = SETATREF(Controls.TextPosition.Y)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=12 /col=1]
1668 | < ExitScope  [1493;0;Layout Dynamic;0]
1669 | FormulaChanged Process!PinX 115.0000 mm = 115.0000030037 mm  [/doc=1 /page=1 /shape=Sheet.2 /shapeu=Sheet.2 /sec=1 /row=1 /col=0]
1669 | CellChanged Process!PinX 115.0000 mm = 115.0000030037 mm  [/doc=1 /page=1 /shape=Sheet.2 /shapeu=Sheet.2 /sec=1 /row=1 /col=0]
1670 | CellChanged Process!PinY 130.0000 mm = 130.00000500616 mm  [/doc=1 /page=1 /shape=Sheet.2 /shapeu=Sheet.2 /sec=1 /row=1 /col=1]
1672 | > EnterScope  [1493;0;Layout Dynamic;0]
1673 | < ExitScope  [1493;0;Layout Dynamic;0]
1674 | > EnterScope  [2566;0;2566;526436]
1675 | < ExitScope  [2566;0;2566;526436]
1676 < ExitScope  [1246;0;Drop On Page;526436]
1677 > EnterScope  [1479;0;Shape Data;526436]
1678 < ExitScope  [1479;1;Shape Data;526436]
1892 AppDeactivated

Aside from the inability to change the zoom level, that's a lot of similarly formatted code.

Enter Notepad++

What you can do is copy the contents and paste into Notepad++.

One nice feature in Notepad++ is its syntax highlighting which it will either infer from the the file extension or you can set via the Language menu.

Another aspect of the syntax highlighting is that you're also able to create a User Defined Language to define your own highlighting and, even though the event output isn't a language, you can still apply some useful rules. You can create a new language by going into Language / Define your language... This allows you to define different keywords and apply different formats for each set.

I've created a language set here, that you can import:

  • VisioEventMonitor.xml

Once that's imported and you've pasted in the monitor output you can set the language under the Language / VisioEventMonitor menu, and the results should be something like this:

1279 AppActivated
1618 > EnterScope  [1246;0;Drop On Page;526436]
1620 | MasterAdded Process  [/doc=1 /master=2]
1621 | CellChanged Process!LineWeight 0.2500 pt = THEMEVAL("LineWeight",0.24 pt)  [/doc=1 /page=1 /shape=Sheet.2 /shapeu=Sheet.2 /sec=1 /row=2 /col=0]
1622 | CellChanged Process!LineColor RGB(200, 200, 200) = THEMEVAL("LineColor",RGB(0,0,0))  [/doc=1 /page=1 /shape=Sheet.2 /shapeu=Sheet.2 /sec=1 /row=2 /col=1]
1623 | CellChanged Process!FillBkgnd RGB(77, 77, 77) = THEMEVAL("FillColor2",15)  [/doc=1 /page=1 /shape=Sheet.2 /shapeu=Sheet.2 /sec=1 /row=3 /col=1]
1624 | CellChanged Process!Char.Color RGB(254, 255, 255) = THEMEVAL("TextColor",RGB(0,0,0))  [/doc=1 /page=1 /shape=Sheet.2 /shapeu=Sheet.2 /sec=3 /row=0 /col=1]
1625 | ShapeAdded Process  [/doc=1 /page=1 /shape=Sheet.2 /shapeu=Sheet.2]
1625 | SelectionAdded Process  [/doc=1 /page=1]
1626 | SelectionChanged window[1] Drawing2 Page-1 subType is 128  [/hwnd=526436]
1627 | MasterAdded Dynamic connector  [/doc=1 /master=3]
1628 | CellChanged Dynamic connector!LineWeight 1.0000 pt = THEMEVAL("ConnectorWeight")  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=2 /col=0]
1629 | CellChanged Dynamic connector!LineColor RGB(70, 114, 196) = THEMEVAL("ConnectorColor",0)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=2 /col=1]
1630 | CellChanged Dynamic connector!EndArrow 4 = THEMEVAL("ConnectorEnd")  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=2 /col=6]
1631 | ShapeAdded Dynamic connector  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3]
1631 | SelectionAdded Dynamic connector  [/doc=1 /page=1]
1632 | FormulaChanged Process!ObjType 1 = 1  [/doc=1 /page=1 /shape=Sheet.2 /shapeu=Sheet.2 /sec=1 /row=17 /col=13]
1633 | FormulaChanged Start/End!ObjType 1 = 1  [/doc=1 /page=1 /shape=Sheet.1 /shapeu=Sheet.1 /sec=1 /row=17 /col=13]
1634 | FormulaChanged Dynamic connector!BegTrigger 2 = _XFTRIGGER('Start/End'!EventXFMod)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=17 /col=11]
1634 | CellChanged Dynamic connector!BegTrigger 2 = _XFTRIGGER('Start/End'!EventXFMod)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=17 /col=11]
1635 | FormulaChanged Dynamic connector!WalkPreference 0 = 0  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=17 /col=10]
1636 | FormulaChanged Dynamic connector!BeginX 87.5000 mm = _WALKGLUE(BegTrigger,EndTrigger,WalkPreference)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=4 /col=0]
1636 | CellChanged Dynamic connector!BeginX 87.5000 mm = _WALKGLUE(BegTrigger,EndTrigger,WalkPreference)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=4 /col=0]
1637 | FormulaChanged Dynamic connector!BeginY 130.0000 mm = _WALKGLUE(BegTrigger,EndTrigger,WalkPreference)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=4 /col=1]
1637 | CellChanged Dynamic connector!BeginY 130.0000 mm = _WALKGLUE(BegTrigger,EndTrigger,WalkPreference)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=4 /col=1]
1638 | ConnectionsAdded Dynamic connector Start/End /autoconnect=4  [/doc=1 /page=1]
1639 | FormulaChanged Dynamic connector!EndTrigger 2 = _XFTRIGGER(Process!EventXFMod)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=17 /col=12]
1639 | CellChanged Dynamic connector!EndTrigger 2 = _XFTRIGGER(Process!EventXFMod)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=17 /col=12]
1640 | FormulaChanged Dynamic connector!EndX 102.5000 mm = _WALKGLUE(EndTrigger,BegTrigger,WalkPreference)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=4 /col=2]
1640 | CellChanged Dynamic connector!EndX 102.5000 mm = _WALKGLUE(EndTrigger,BegTrigger,WalkPreference)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=4 /col=2]
1641 | FormulaChanged Dynamic connector!EndY 130.0000 mm = _WALKGLUE(EndTrigger,BegTrigger,WalkPreference)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=4 /col=3]
1641 | CellChanged Dynamic connector!EndY 130.0000 mm = _WALKGLUE(EndTrigger,BegTrigger,WalkPreference)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=4 /col=3]
1642 | ConnectionsAdded Dynamic connector Process /autoconnect=4  [/doc=1 /page=1]
1643 | CellChanged Dynamic connector!PinX 95.0000 mm = GUARD((BeginX+EndX)/2)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=1 /col=0]
1644 | FormulaChanged Dynamic connector!Width 15.0000 mm = GUARD(EndX-BeginX)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=1 /col=2]
1644 | CellChanged Dynamic connector!Width 15.0000 mm = GUARD(EndX-BeginX)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=1 /col=2]
1645 | CellChanged Dynamic connector!PinY 130.0000 mm = GUARD((BeginY+EndY)/2)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=1 /col=1]
1646 | FormulaChanged Dynamic connector!Height 5.0000 mm = GUARD(5 mm)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=1 /col=3]
1646 | CellChanged Dynamic connector!Height 5.0000 mm = GUARD(5 mm)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=1 /col=3]
1647 | CellChanged Dynamic connector!LocPinX 7.5000 mm = GUARD(Width*0.5)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=1 /col=4]
1648 | CellChanged Dynamic connector!LocPinY 2.5000 mm = GUARD(Height*0.5)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=1 /col=5]
1649 | > EnterScope  [1493;0;Layout Dynamic;0]
1650 | | FormulaChanged Dynamic connector!Geometry1.NoFill TRUE = TRUE  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=0 /col=0]
1651 | | FormulaChanged Dynamic connector!Geometry1.NoLine FALSE = FALSE  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=0 /col=1]
1652 | | FormulaChanged Dynamic connector!Geometry1.NoShow FALSE = FALSE  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=0 /col=2]
1653 | | FormulaChanged Dynamic connector!Geometry1.NoSnap FALSE = FALSE  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=0 /col=3]
1654 | | FormulaChanged Dynamic connector!Geometry1.NoQuickDrag FALSE = FALSE  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=0 /col=5]
1655 | | FormulaChanged Dynamic connector!Geometry1.X1 0.0000 mm = 0 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=1 /col=0]
1656 | | FormulaChanged Dynamic connector!Geometry1.Y1 2.5000 mm = 2.5 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=1 /col=1]
1656 | | CellChanged Dynamic connector!Geometry1.Y1 2.5000 mm = 2.5 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=1 /col=1]
1657 | | FormulaChanged Dynamic connector!Geometry1.X2 15.0000 mm = 15 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=2 /col=0]
1657 | | CellChanged Dynamic connector!Geometry1.X2 15.0000 mm = 15 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=2 /col=0]
1658 | | FormulaChanged Dynamic connector!Geometry1.Y2 2.5000 mm = 2.5 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=2 /col=1]
1658 | | CellChanged Dynamic connector!Geometry1.Y2 2.5000 mm = 2.5 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=2 /col=1]
1659 | | FormulaChanged Dynamic connector!Geometry1.X3  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=3 /col=0]
1659 | | CellChanged Dynamic connector!Geometry1.X3  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=3 /col=0]
1660 | | FormulaChanged Dynamic connector!Geometry1.Y3  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=3 /col=1]
1660 | | CellChanged Dynamic connector!Geometry1.Y3  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=10 /row=3 /col=1]
1661 | | FormulaChanged Dynamic connector!ConFixedCode 0 = 0  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=23 /col=12]
1662 | | FormulaChanged Dynamic connector!Controls.TextPosition 7.5000 mm = 7.5000002086163 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=9 /row=0 /col=0]
1662 | | CellChanged Dynamic connector!Controls.TextPosition 7.5000 mm = 7.5000002086163 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=9 /row=0 /col=0]
1663 | | CellChanged Dynamic connector!Controls.TextPosition.XDyn 7.5000 mm = Controls.TextPosition  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=9 /row=0 /col=2]
1664 | | CellChanged Dynamic connector!TxtPinX 7.5000 mm = SETATREF(Controls.TextPosition)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=12 /col=0]
1665 | | FormulaChanged Dynamic connector!Controls.TextPosition.Y 2.5000 mm = 2.4999999433756 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=9 /row=0 /col=1]
1665 | | CellChanged Dynamic connector!Controls.TextPosition.Y 2.5000 mm = 2.4999999433756 mm  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=9 /row=0 /col=1]
1666 | | CellChanged Dynamic connector!Controls.TextPosition.YDyn 2.5000 mm = Controls.TextPosition.Y  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=9 /row=0 /col=3]
1667 | | CellChanged Dynamic connector!TxtPinY 2.5000 mm = SETATREF(Controls.TextPosition.Y)  [/doc=1 /page=1 /shape=Sheet.3 /shapeu=Sheet.3 /sec=1 /row=12 /col=1]
1668 | < ExitScope  [1493;0;Layout Dynamic;0]
1669 | FormulaChanged Process!PinX 115.0000 mm = 115.0000030037 mm  [/doc=1 /page=1 /shape=Sheet.2 /shapeu=Sheet.2 /sec=1 /row=1 /col=0]
1669 | CellChanged Process!PinX 115.0000 mm = 115.0000030037 mm  [/doc=1 /page=1 /shape=Sheet.2 /shapeu=Sheet.2 /sec=1 /row=1 /col=0]
1670 | CellChanged Process!PinY 130.0000 mm = 130.00000500616 mm  [/doc=1 /page=1 /shape=Sheet.2 /shapeu=Sheet.2 /sec=1 /row=1 /col=1]
1672 | > EnterScope  [1493;0;Layout Dynamic;0]
1673 | < ExitScope  [1493;0;Layout Dynamic;0]
1674 | > EnterScope  [2566;0;2566;526436]
1675 | < ExitScope  [2566;0;2566;526436]
1676 < ExitScope  [1246;0;Drop On Page;526436]
1677 > EnterScope  [1479;0;Shape Data;526436]
1678 < ExitScope  [1479;1;Shape Data;526436]
1892 AppDeactivated

I find this very helpful. The event scopes become much clearer and there's a separation between the event name, the value and formula, and the 'more info' component of the event.

I've also italised the Before events so they become a little clearer as well:

6798 AppActivated
6865 > EnterScope  [1023;0;Delete;526436]
6867 | QueryCancelSelectionDelete Decision  [/doc=1 /page=1]
6869 | > EnterScope  [1486;0;Delete Object;526436]
6870 | | BeforeWindowSelDelete window[1] Drawing2 Page-1 subType is 128  [/hwnd=526436]
6872 | | BeforeSelectionDelete Decision  [/doc=1 /page=1]
6874 | | BeforeShapeDelete Decision  [/doc=1 /page=1 /shape=Sheet.4 /shapeu=Sheet.4]
6876 | | FormulaChanged Dynamic connector!EndX 102.5000 mm = 102.5000030037 mm  [/doc=1 /page=1 /shape=Sheet.5 /shapeu=Sheet.5 /sec=1 /row=4 /col=2]
6877 | | FormulaChanged Dynamic connector!EndY 130.0000 mm = 130.00000500616 mm  [/doc=1 /page=1 /shape=Sheet.5 /shapeu=Sheet.5 /sec=1 /row=4 /col=3]
6878 | < ExitScope  [1486;0;Delete Object;526436]
6881 | > EnterScope  [2199;0;Delete;526436]
6882 | | QueryCancelSelectionDelete Dynamic connector  [/doc=1 /page=1]
6884 | | BeforeWindowSelDelete window[1] Drawing2 Page-1 subType is 128  [/hwnd=526436]
6886 | | BeforeSelectionDelete Dynamic connector  [/doc=1 /page=1]
6888 | | BeforeShapeDelete Dynamic connector  [/doc=1 /page=1 /shape=Sheet.5 /shapeu=Sheet.5]
6890 | | SelectionChanged window[1] Drawing2 Page-1 subType is 128  [/hwnd=526436]
6891 | < ExitScope  [2199;0;Delete;526436]
6892 | > EnterScope  [2566;0;2566;526436]
6893 | < ExitScope  [2566;0;2566;526436]
6894 < ExitScope  [1023;0;Delete;526436]
7070 AppDeactivated

Anyway, I hope you find this useful and that it gives you a clearer picture of what Visio is up to.

Microsoft MVP Logo

John has been a Microsoft MVP, in the award categories of Visio and M365, since 2008.

Visio Blogs

  • Bill Morein (via Wayback Machine)
  • Chris Castillo (via Wayback Machine)
  • Chris Hopkins (via Wayback Machine)
  • David Parker
  • Eric Rockey
  • Jesse Phillips-Mead
  • John Marshall
  • Michel LAPLANE (FR)
  • Nikolay Belyh
  • Saveen Reddy (via Wayback Machine)
  • Visio Guy
  • Visio [Product] Blog
  • Visio Insights (via Wayback Machine)

Visio Resources

  • Developing Microsoft Visio Solutions
  • Visio Stencils at ShapeSource
  • Microsoft Visio YouTube Playlist
  • Visio (Product site)
  • Office 2010 Engineering
  • Visio 2016 SDK (Download)
  • Visio JavaScript API reference
  • VisioMVPs.org
Contact

visualSignals ltd
31 Riverview Grove
London, W4 3QL
United Kingdom

+44 (0) 208 078 9120

Around the Web

Copyright © visualSignals ltd 2025

Mastodon