Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с офисом 2000 [D7, XP]


Страницы:   1 2

nickmas ©   (2006-04-08 02:53:00) 

Уважаемые мастера! Помогите разобраться в следующей проблеме:

Используя позднее связывание, создаю график в Excel-e:

...
Excel.Charts.Add;
Excel.Charts[1].ChartType:=xlXYScatterSmooth;

Добавляю данные в график:

Excel.Charts[1].SeriesCollection.NewSeries;
Excel.Charts[1].SeriesCollection[1].XValues:=VarArrayOf([xsr1,xsr2,xsr3]);
Excel.Charts[1].SeriesCollection[1].Values:=VarArrayOf([ysr1,ysr2,ysr3]);

И теперь привязываю данный график к листу с названием "Результат":

Excel.ActiveChart.Location(xlLocationAsObject,'Результат');

Так вот проблема в том, что у меня стоит 2003 офис и все нормально работает. Но..., как выяснилось позже, не работает на 2000 офисе. А именно: не хочет привязывать график к данному листу.

Может кто укажет, в чем тут моя ошибка?

Заранее благодарен!!!


nickmas   (2006-04-10 08:50:00) [21]

Excel у меня Variant


nickmas   (2006-04-10 08:47:00) [22]

Дело в том, что не со всеми свойствами объекта можно работать с трех сторон (по крайней мере у меня не получалось). Вот, например, чтобы изменить размер диаграммы, получилось только таким способом

Excel.Sheets[2].ChartObjects[1].Height:=139;
Excel.Sheets[2].ChartObjects[1].Width:=239;

а также изменить положение - тоже таким же способом

Excel.Sheets[2].ChartObjects[1].Left:=99;
Excel.Sheets[2].ChartObjects[1].Top:=14;

Да и, как мне кажется, не в этом дело. Лишь бы обращение к объекту было верным (для офиса 2003 верно - проверено).

А для офиса 2000... Может там нужно по другому как-то обращаться к данному объекту (хотя макросы пишутся одинаково, что в 2000, что в 2003). Или нужно подключить чего? (Excel2000 у меня подключен, а также ExcelXP и Excel97)

В общем жду совета, мастера!


sniknik   (2006-04-10 08:38:00) [23]

> Не ужели нет ни у кого никаких мыслей?
правильная мысль... поставь себе "офис 2000" и отлаживай/работай с ним если хочеш чтобы с ним тоже работало, и это не только иза данного конкретного глюка, а изза принципа поддерживаемости продуктов, сверху вниз она есть, а снизу вверх еще не придумали как.

кстати какого типа у тебя переменная Excel? вариант, или конкретного? если конкретного то какой модуль используется ExcelXP или Excel2000, и если взять 2000 то в нем у интерфейсов вообще есть те методы что ты используеш (на которых глюки)?


ЮЮ   (2006-04-10 06:28:00) [24]

Excel.Charts[1]
Excel.ActiveChart
Excel.Sheets[2].ChartObjects[1]

Может не стоит работать с объектом с трех разных сторон, а остановиться на одной, успешно работающей?


nickmas   (2006-04-10 04:15:00) [25]

Не ужели нет ни у кого никаких мыслей?


nickmas   (2006-04-09 20:02:00) [26]

Кстати, ошибку выдает программа, когда я обращаюсь к графику после его создания:

Excel.Sheets[2].ChartObjects[1].Height:=139;
Excel.Sheets[2].ChartObjects[1].Width:=239;

А строку

Excel.ActiveChart.Location(xlLocationAsObject,'Результат');

видимо проходит, но не выполняет.

(Sheets[2] = 'Результат')


nickmas   (2006-04-08 20:28:00) [27]

Дело в том, что одинаковые - я об этом тоже думал!?


YurikGL   (2006-04-08 17:46:00) [28]

Посмотри на соответсвующие макросы 2000-го и 2003-го офисов... возможно, они разные...


nickmas   (2006-04-08 16:06:00) [29]

Я пользуюсь MS Office 2003. Но меня также интересует, чтобы это приложение работало с любым офисом.


balepa   (2006-04-08 06:59:00) [30]

Ошибка втом что ты пользуешся MS Office 2000


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо