Цитата:
Сообщение от
Gustav
- Возьмите свой получившийся xls-файл с диаграммами.
- Включите в Excel (ручками) запись макроса.
- Разведите свои диаграммы мышкой по рабочему листу, как вам нравится.
- Выключите запись макроса.
- Проанализируйте получившийся 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#
Затрудняюсь написать.
Да и не верно это будет. указывать куда конкретно переместить диаграмму.
Ведь от условий запуска они могут быть разные .
вот тут-то и загвоздка.