Я попытался воспроизвести его и получил ту же ошибку, но я заработал, когда попытался изменить фигуру, которая была помещена, потянув изображение непосредственно из проводника в visio.
Кажется, что форма имеетбыть картиной для начала, чтобы иметь возможность обмениваться ею.Проверьте, является ли фигура, которую вы пытаетесь заменить, изображением (см. Прикрепленное изображение).Я не знаю, как выглядит ваш график или какова его структура, но убедитесь, что вы выбрали правильную фигуру, возможно, изображение является подформой другой фигуры (группы).
При копании немного глубже и попытке найти тип фигуры с помощью shape.type
мы видим, что первая фигура (sheet.2
) имеет тип 4 (ForeignType) и копание глубже с shape.foreigntype
, что это объект visTypeBitmap.
Вторая фигура имеет тип 3 и является visTypeShape
, нативная форма Visio.
Так как похоже, что единственный жизнеспособный вариант предназначен для замены фигуры, я попробовал следующее:
- Импортировать изображениена activePage
- Создан новый трафарет
- Перетащите форму в трафарет
- используйте
shape.ReaplaceShape
для замены старой формы
--> В этом случае происходит сбой Visio, но я опубликую свой код, как только он заработает.Также вполне вероятно, что есть гораздо более простой способ для этого ....