Page.Shapes Property (Visio)
Published: July 16, 2012
Returns the Shapes collection for a page, master, or group. Read-only.
This Microsoft Visual Basic for Applications (VBA) macro shows how to use the Shapes property to get the Shapes collection. It prints the names of all shapes on Page1 in the Immediate window.
To run this macro, make sure the active document has shapes on Page1.
Public Sub Shapes_Example() Dim intCounter As Integer Dim intShapeCount As Integer Dim vsoShapes As Visio.Shapes Set vsoShapes = ActiveDocument.Pages.Item(1).Shapes Debug.Print "Shapes in document: "; ActiveDocument.Name Debug.Print "On page: "; ActiveDocument.Pages.Item(1).Name intShapeCount = vsoShapes.Count If intShapeCount > 0 Then For intCounter = 1 To intShapeCount Debug.Print " "; vsoShapes.Item(intCounter).Name Next intCounter Else Debug.Print "No Shapes On Page" End If End Sub