I am trying to detect a rectangular shape (Bar) in Excel. Excel has a Selection property, but it only works for cells. So, if a user has modified a Bar, I need to know which one to act on.
I’m not sure to understand what’s your goal…
In Excel (as far as I know) there’s no way to determine if a shape is selected.
Here is a script you can get inspired of:
tell application id "XCEL" set shapeList to (shapes of sheet 1 whose has chart = true) if (count of shapeList) = 0 then error "There is no chart in this document." else if (count of shapeList) = 1 then set theShape to (item 1 of shapeList) else set shapeNames to name of shapes of sheet 1 whose has chart = true set chosenShape to choose from list shapeNames without multiple selections allowed if chosenShape = false then return set shapeList to (shapes of sheet 1 whose name = chosenShape) set theShape to (item 1 of shapeList) end if end tell
Thanks for your effort. Unfortunately, the shapes have no chart.
Ironically, VBA knows which shapes are selected. I can use VBA to put the name of the shape somewhere on the spreadsheet, then my script can retrieve the name and then do something with the shape. So, I can have my script run the macro, then retrieve the name of the shape.