Table of contents
Collapse the table of content
Expand the table of content

Shape.ObjectType Property (Visio)

office 365 dev account|Last Updated: 6/12/2017
1 Contributor

Returns an object's type. Read-only.


expression . ObjectType

expression A variable that represents a Shape object.

Return Value



Constants representing object types are prefixed with visObjType and are declared by the Visio type library in VisObjectTypes .


This example shows how to use the ObjectType property of a page to iterate recursively through a group and identify the top shape.

Public Sub ObjectType_Example() 

 Dim vsoShape As Visio.Shape 
 Dim vsoShapes As Visio.Shapes 
 Dim vsoPage As Visio.Page 

 Application.ActiveWindow.Page.Drop Application.Documents.Item("BASIC_U.VSS").Masters.ItemU("Pentagon"), 3#, 8.5 

 Application.ActiveWindow.Page.Drop Application.Documents.Item("BASIC_U.VSS").Masters.ItemU("Ellipse"), 3#, 7.625 

 Application.ActiveWindow.Page.Drop Application.Documents.Item("BASIC_U.VSS").Masters.ItemU("Rounded rectangle"), 3#, 7# 

 Application.ActiveWindow.Page.Drop Application.Documents.Item("BASIC_U.VSS").Masters.ItemU("Circle"), 3#, 6.25 


 ActiveWindow.Select Application.ActiveWindow.Page.Shapes.ItemU("Circle"), visSelect 
 ActiveWindow.Select Application.ActiveWindow.Page.Shapes.ItemU("Rounded rectangle"), visSelect 
 ActiveWindow.Select Application.ActiveWindow.Page.Shapes.ItemU("Ellipse"), visSelect 
 ActiveWindow.Select Application.ActiveWindow.Page.Shapes.ItemU("Pentagon"), visSelect 

 Set vsoPage = ActivePage 
 Set vsoShapes = vsoPage.Shapes 
 Set vsoShape = vsoShapes.Item(2) 

 Call GetTopShape(vsoShape) 

End Sub 

Function GetTopShape(vsoShape As Visio.Shape) As String 

 Dim vsoShapeParent As Object 
 Dim vsoShapeParentParent As Object 

 Set vsoShapeParent = vsoShape.Parent 

 If vsoShapeParent.ObjectType = visObjTypeShape Then 

 Set vsoShapeParentParent = vsoShapeParent.Parent 

 'If vsoShapeParent's parent isn't a page, keep going up. 
 If vsoShapeParentParent.ObjectType = visObjTypePage Then 
 GetTopShape = vsoShapeParent.Name 
 GetTopShape = GetTopShape(vsoShapeParent) 
 End If 

 End If 

 Debug.Print vsoShapeParent.Name 

End Function
© 2018 Microsoft