View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Jake Marx[_3_] Jake Marx[_3_] is offline
external usenet poster
 
Posts: 860
Default loop through rectangles on worksheet

Hi jeichhold,

Something like this should do the trick:

Sub test()
Dim objRect As Object
Dim sText As String

For Each objRect In Sheets("Sheet1").Rectangles
sText = vbNullString
On Error Resume Next
If Not objRect.Text Is Nothing Then
sText = objRect.Text
End If
On Error GoTo 0
Debug.Print objRect.Name & ": " & sText
Next objRect
End Sub

--
Regards,

Jake Marx
www.longhead.com


[please keep replies in the newsgroup - email address unmonitored]

jeichhold via OfficeKB.com wrote:
Hello,

I am working on extracting data out of an OLE object pasted into
Excel.
After pasting the object into excel I perform an 'ungroup' on it and
it is converted into a collection of shape (or rectangle) objects
with text in them. I am trying to loop through each of these
rectangles sequentially and grab the text out of them. The problem
is that I do not know what the names of the rectangles will be. I
could have "Rectangle 1", "Rectangle 2", and "Rectangle 3." I could
have "Rectangle 225" through "Rectangle 467," or any sequence of
rectangles. Regardless, I want to start with the lowest numbered
rectangle and loop until i'm out of rectangles.

The code I have so far will only work if I know the beginning and
ending rectangle names. In this case I loop through "Rectangle 5"
through "Rectangle 10"

Dim FirstRect, LastRect as Integer
FirstRect = 5
LastRect = 10

For Index = FirstRect To LastRect
ThisRectangle = "rectangle" & " " & Index
msgbox =
Worksheets("sheet1").Shapes(ThisRectangle).TextFra me. Characters.Text
Next Index


How can I change this code to loop sequentially through all
rectangles on the worksheet, no matter what the starting and ending
rectangle numbers are?