В более ранних версиях Microsoft Office (2007 и более ранних) диаграммы были, действительно, объектами OLE, основанными на механизме создания диаграмм Excel.Для работы с ранним связыванием требовалась ссылка на объектную модель Excel.
Начиная с Office 2010, с появлением новых графических и графических движков в пакете Microsoft Office, работа с диаграммами значительно изменилась.Помимо прочего, объектная модель диаграммы была «импортирована» в объектные модели различных приложений Office, поэтому для работы с функциональностью построения диаграмм ссылка на внешнюю библиотеку больше не нужна.Объектные модели приложений Office теперь также имеют объект Chart
.
Все это так, даже если создание и управление диаграммами все еще выполняется через интерфейс приложения Excel.(Действительно, (более) невозможно скрыть приложение Excel при автоматизации диаграммы.)
Итак, что касается приложений Office, диаграммы Excel теперь (для8+ лет) "нативные" части своих объектных моделей и больше не являются объектами OLE.
sh.OLEFormat.Object.Count
возвращает ошибку, поскольку у одного объекта нет свойства Count
.Код не запрашивает Count
для коллекции Shapes
, только для одного объекта Shape
.Вам понадобится переменная, чтобы сложить число раз, когда цикл встречается с msoLinkedOLEObject
(что-то вроде i = i + 1
).