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

OLEObject.Shape Property (Visio)

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

Returns the Shape object that owns a Cell , Characters , Row , or Section object or that is associated with a Hyperlink or OLEObject object or with the Hyperlinks collection. Read-only.


expression . Shape

expression A variable that represents an OLEObject object.

Return Value



This Microsoft Visual Basic for Applications (VBA) macro shows how to use the Shape property to get the Shape objects that own a Cell and a Characters object.

Public Sub Shape_Example() 

 Dim vsoRectangle As Visio.Shape 
 Dim vsoOval As Visio.Shape 
 Dim vsoShapeFromCell As Visio.Shape 
 Dim vsoShapeFromCharacters As Visio.Shape 
 Dim vsoCell As Visio.Cell 
 Dim vsoCharacters As Visio.Characters 

 'Create 2 different shapes and add different text to each shape. 
 Set vsoRectangle = ActivePage.DrawRectangle(2, 3, 5, 4) 
 Set vsoOval = ActivePage.DrawOval(2, 5, 5, 7) 
 vsoRectangle.Text = "Rectangle Shape" 
 vsoOval.Text = "Oval Shape" 

 'Get a Cell object from the first shape. 
 Set vsoCell = vsoRectangle.Cells("Width") 

 'Get a Characters object from the second shape. 
 Set vsoCharacters = vsoOval.Characters 

 'Use the Shape property to get the Shape object. 
 Set vsoShapeFromCell = vsoCell.Shape 
 Set vsoShapeFromCharacters = vsoCharacters.Shape 

 'Use each shape's text to verify the proper Shape 
 'object was returned. 
 Debug.Print vsoShapeFromCell.Text 
 Debug.Print vsoShapeFromCharacters.Text 

End Sub
© 2018 Microsoft