Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 162
Default Detecting if a range contains a shape

As the topic title says, I'm trying to determine whether a range of
cells contains a shape. So far, I can see only one method:

Iterate through all the shapes in the worksheet and do boundary
checking using the TopLeftCell and BottomRightCell properties of the
Shape object.

This works but there could be 100's of shapes to iterate through on the
worksheet that I'm working with, so it would be computationally
expensive.

Is there a way to take a Range object and test it directly to see if it
contains any Shapes?

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,600
Default Detecting if a range contains a shape

I don't know of any way without looping, but I don't find it
"computationally expensive". Do you mean amount of code or speed. If speed,
I find it's pretty fast to "get" all objects in a range even if 500 exist on
the sheet (about than 0.01 sec in my very old machine), not so much code
either.

FWIW, I don't look at TopLeftCell and BottomRightCell, but compare left,
top, right, bottom of each object with that of the range, and set a flag
against the object index if inside. End up with something like

set getShapes = activesheet.shapes.range(arr)

where arr is an array of indexes of shapes inside the range

If you're not against looping (?) I could extract some code.

Regards,
Peter T

"Nick Hebb" wrote in message
oups.com...
As the topic title says, I'm trying to determine whether a range of
cells contains a shape. So far, I can see only one method:

Iterate through all the shapes in the worksheet and do boundary
checking using the TopLeftCell and BottomRightCell properties of the
Shape object.

This works but there could be 100's of shapes to iterate through on the
worksheet that I'm working with, so it would be computationally
expensive.

Is there a way to take a Range object and test it directly to see if it
contains any Shapes?



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,600
Default Detecting if a range contains a shape

a slight typo!

about than 0.01 sec


less than 0.1 sec

Peter T


  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 162
Default Detecting if a range contains a shape

FWIW, I don't look at TopLeftCell and BottomRightCell, but compare left,
top, right, bottom of each object with that of the range, and set a flag
against the object index if inside.


That's a good idea. I was using the Intersect (and Offset(-1,-1) for
the BottomRightCell) then testing the result for Is Nothing.

less than 0.1 sec


I'm performing quite a few operations in addition to this and I'm
noticing a slight latency. I haven't measured anything yet, but I'm
just looking through my code to see where i might be able to trim it
up.

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Shape Range kuhrty Charts and Charting in Excel 3 April 22nd 10 05:12 PM
detecting range of spreadsheet altein New Users to Excel 1 February 22nd 08 11:28 PM
my curser changed from arrow shape to a cross shape???? bj New Users to Excel 1 February 5th 07 02:47 PM
align a picture/shape in a Range! Andoni[_18_] Excel Programming 1 August 22nd 04 06:11 PM
detecting shape clicked on notsureofthatinfo Excel Programming 1 October 15th 03 07:46 AM


All times are GMT +1. The time now is 07:32 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"