Option Explicit Rem this example illustrates different ways of using the selection property. Rem Try to run it with text selected, paths selected and the bounding box of text art items selected Private Sub GetTextSelection_Click() Dim appRef As New Illustrator.Application Dim selectedItems As Variant selectedItems = appRef.Selection If (IsEmpty(selectedItems)) Then MsgBox "Noting is selected" Exit Sub End If Rem If the user has selected characters inside a text art item then the type of Rem the selection is string If (TypeName(selectedItems) = "String") Then MsgBox "The following text is selected: >" & selectedItems & "<" Exit Sub End If Rem If one or more art items are selected then a variant array of Objects is returned If (TypeName(selectedItems) <> "Variant()") Then MsgBox "Unknown selection type = " & TypeName(selectedItems) Exit Sub End If Rem run through the returned array Rem (startIndex will always be 0) Dim startIndex, endIndex As Integer Dim index As Integer startIndex = LBound(selectedItems) endIndex = UBound(selectedItems) Dim artItem As Illustrator.PageItem Dim pageObject As Object For index = startIndex To endIndex Set pageObject = selectedItems(index) Rem Page objects now points to one of the art item classes: Rem - CompoundPathItem Rem - GroupItem Rem - MeshItem Rem - PathItem Rem - PlacedItem Rem - PlugInItem Rem - RasterItem Rem - TextArtItem Rem One way to find out what type we are dealing with is to test typename(pageObject) Rem an other way is to get the PageItem property of the object and then test it's PageItemType Rem this works because all the art item classes has a PageItemType property Set artItem = pageObject.PageItem If (artItem.PageItemType = aiTextArtItem) Then MsgBox "Text art item: >" & artItem.TextArtItem.Contents & "<" Else MsgBox TypeName(pageObject) End If Next End Sub