ItemU Property [Visio 2003 SDK Documentation]

Returns an object from a collection.

objRet = object**.ItemU**(nameUIDOrIndex)**

objRet     The object retrieved from the collection.

object    Required. An expression that returns a collection in the Applies to list.

nameUIDOrIndex    Required Variant. Contains the universal name, unique ID, or index of the object to retrieve.

Version added

2.0

Remarks

You can retrieve an object in an Addons, Hyperlinks, Layers, Masters, MasterShortcuts, Pages, Shapes, or Styles collection by passing the object's name as a string expression in a Variant.

If you retrieve a Shape object by name, the ItemU property searches all shapes in the Shapes collection's containing page or containing master, in addition to the collection's containing shape. Therefore, the Shape object returned by the ItemU property can be a shape that is not in the Shapes collection.

You can also pass the unique ID string of a Master or Shape object to the ItemU property. For example:

objRet = vsoShapes.ItemU("{2287DC42-B167-11CE-88E9-0020AFDDD917}")

If such a string is passed to the ItemU property of a Shapes collection, all the shapes contained in the collection are searched. Shapes within the group shapes in the containing shape are not searched.

To search all shapes in the collection, plus the shapes inside groups and the containing shape of the collection, prefix the unique ID string with an asterisk (*). For example:

objRet = vsoShapes.ItemU("*{2287DC42-B167-11CE-88E9-0020AFDDD917}")

Notes

  • In Visio 2000 only, vsoShapes.ItemU("{guid}") examined the Shapes collection's containing shape and all descendants, and vsoShapes.ItemU("*{guid}") examined all shapes in the Shapes collection's containing page or containing master.

  • Beginning with Microsoft Visio 2000, you can use both local and universal names to refer to Visio shapes, masters, documents, pages, rows, add-ons, cells, hyperlinks, styles, fonts, master shortcuts, UI objects, and layers. When a user names a shape, for example, the user is specifying a local name. Beginning with Microsoft Office Visio 2003, the ShapeSheet spreadsheet displays only universal names in cell formulas and values. (In prior versions, universal names were not visible in the user interface.)

    As a developer, you can use universal names in a program when you don't want to change a name each time a solution is localized. Use the Item property to access an object in the Masters, Pages, Shapes, Styles, Layers, or MasterShortcuts collection by using its local name. Use the ItemU property to access an object from one of these collections by using the object's universal name.

Example

This Microsoft Visual Basic macro shows how to use the ItemU property of the Pages collection to get the Shapes collection. Then it uses the ItemU property of the Shapes collection to print the universal names of all shapes on Page-1 in the Immediate window.

To run this macro, make sure the active document has shapes on Page-1.

Public Sub ItemU_Example()
 
    Dim intCounter As Integer
    Dim intShapeCount As Integer
    Dim vsoShapes As Visio.Shapes 

    Set vsoShapes = ActiveDocument.Pages.ItemU(1).Shapes 

    Debug.Print "Shapes in Document: "; ActiveDocument.Name 
    Debug.Print "          on  Page: "; ActiveDocument.Pages.ItemU(1).Name 

    intShapeCount = vsoShapes.Count 

    If intShapeCount > 0 Then

        For intCounter = 1 To intShapeCount 
            Debug.Print " "; vsoShapes.ItemU(intCounter).Name 
        Next intCounter
 
    Else

        Debug.Print " No Shapes On Page"
 
    End If  

End Sub

Applies to | Addons collection | Hyperlinks collection | Layers collection | Masters collection | MasterShortcuts collection | Pages collection | Shapes collection | Styles collection