Как получить внутреннее имя Shape в Excel

Когда изображение вставляется в рабочий лист Excel с помощью метода Shapes.AddPicture (...), Excel дает ему имя "Изображение 1", "Изображение 2" автоматически и т. д.

Это имя может использоваться для получения ссылки на этот объект формы в коллекции Shapes, например Shapes.Item («Рисунок 1»). Если имя изменено в Excel с помощью поля имени, существует два разных имени (или одно из них является ключом / заголовком), через которые можно ссылаться на объект Shape. Итак, если я изменю имя на «MyPic», я могу использовать любое из них для ссылки на фигуру в коллекции Shapes:

Shapes.Item("Picture 1")
OR
Shapes.Item("MyPic")

К имени можно получить доступ с помощью Shape. Свойство Name в VBA, но как мы можем получить доступ к другому значению (MyPic), которое, кажется, не меняется внутри?

ОБНОВЛЕНО
Я пытаюсь связать ячейку с изображением в Excel. Я сохраняю данные изображения в комментарии к ячейке. Это сценарии:

  1. Если я сохраню имя изображения (внешнее имя), то копирование и вставка структуры на том же листе дублирует имя, и ячейка будет указывать на ту же структуру.
  2. Если я сохраню внутреннее имя имя, то копирование и вставка на другой лист создаст проблему, поскольку такое же внутреннее имя может существовать на каком-то другом листе в той же книге.
  3. Если я возьму ID, я не смогу получить ссылку на изображение с него

Для меня важно получить внутреннее имя. У меня есть ссылка на форму, но я не знаю, как получить внутреннее имя из этой ссылки.

7
задан Community 9 July 2018 в 18:41
поделиться