Page.Shapes Property (Visio)
Office 2013
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