Я пытаюсь проверить, подходит ли выбранная пользователем форма. Для простоты, скажем, у нас есть только одна фигура в другом пустом листе. Из-за этого мы знаем, что выбранная форма должна быть правильной:
Sub AreShapesTheSame()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim shape As Object
Dim selShape As Object
Set shape = ws.Shapes.Item(1).DrawingObject
Set selShape = Selection
MsgBox shape Is selShape
End Sub
В окне Locals я вижу, что объекты shape и selShape имеют одинаковые атрибуты. Кроме того, если я изменю имя одного из них (shape.name = "xxx"), имя другого объекта также изменится. Поэтому я предполагаю, что они являются одинаковыми объектами или, по крайней мере, ссылаются на один и тот же объект.
Если это так, почему оператор (shape Is selShape) возвращает False? Как я могу проверить, ссылается ли пользовательское выделение на какой-либо конкретный c объект?