Показать сообщение отдельно
Старый 23.07.2008, 11:59   #10  
fialka is offline
fialka
Участник
 
347 / 16 (1) ++
Регистрация: 05.10.2006
Адрес: Екатеринбург
Цитата:
Сообщение от Gustav Посмотреть сообщение
  1. Возьмите свой получившийся xls-файл с диаграммами.
  2. Включите в Excel (ручками) запись макроса.
  3. Разведите свои диаграммы мышкой по рабочему листу, как вам нравится.
  4. Выключите запись макроса.
  5. Проанализируйте получившийся VBA-код и воплотите его в X++.
X++:
    COM COMAppl;
    COM COMWorkbooks, COMworkbook,    COMChart;
    COM COMWorksheet;
    COM COMSeries;
    ;
   ...
    COMappl = COM::getObject(#Excel);
    if (! COMappl)
    COMappl = new COM(#Excel);
    try
    {
    COMappl.visible(TRUE);
    COMworkbooks = COMAppl.Workbooks();
    COMworkbook = COMworkbooks.add();
    COMWorksheet = COMworkbook.Worksheets();
 
    COMWorksheet = COMWorksheet.Item(1);
    COMChart = COMworkbook.Charts();
    COMChart = COMChart.add();
    COMChart.ChartType(65); 
    COMChart = COMChart.Location(2 , COMWorksheet.Name() );
    COMSeries = COMChart.SeriesCollection();
    COMSeries = COMSeries.NewSeries();
    COMSeries.Values( "1");
    COMSeries.Name( "№1");
    COMSeries.XValues( con2str(conX,";") );
  //
Запускала макрос. примерно вот так запускается первый объект.


но как прописать такое ... /
ActiveWindow.Visible = False
Windows("Книга1").Activate
ActiveSheet.ChartObjects("Диагр. 1").Activate
ActiveChart.ChartArea.Select
COMSeries.Shapes("Диагр. 1").IncrementLeft -222#
ActiveSheet.Shapes("Диагр. 1").IncrementTop -159#

Затрудняюсь написать.

Да и не верно это будет. указывать куда конкретно переместить диаграмму.
Ведь от условий запуска они могут быть разные .
вот тут-то и загвоздка.