Существует четыре синтаксиса для добавления встроенной диаграммы на лист.Сначала я перечислю их самые старые.
Самым старым способом, добавляет лист с диаграммой, а затем помещает лист с диаграммой на лист.Не используйте его, он устарел.
Charts.Add
ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
Таким образом ChartObject добавляется непосредственно на лист.ChartObject - это особый вид фигуры, который включает диаграмму.Это добавляет диаграмму по умолчанию (кластеризованный столбец, если вы не определили другое значение по умолчанию), используя размеры и позиции в скобках (которые требуются).Он возвращает ChartObject.
ActiveSheet.ChartObjects.Add(Left, Top, Width, Height)
В Excel 2007 введен этот синтаксис, который включает в себя тип диаграммы (если опущен, вы получаете тип по умолчанию) и положение и размер (если опущено, диаграмма является размером по умолчанию, 35 дюймов, в центре активного окна).Он возвращает форму.
ActiveSheet.Shapes.AddChart(XlChartType, Left, Top, Width, Height)
В Excel 2013 введен другой синтаксис, который также включает стиль диаграммы в дополнение к другим параметрам и который также возвращает форму.
ActiveSheet.Shapes.AddChart2(Style, XlChartType, Left, Top, Width, Height)
Iхотел бы использовать AddChart2
все время, но я по-прежнему поддерживаю пользователей Excel 2010, поэтому я должен использовать AddChart
.У меня есть подпрограмма, которая ищет стиль по умолчанию для данного типа диаграммы, поэтому я могу применить его в Excel 2013+ для имитации AddChart2
.Вероятно, нет причин использовать ChartObjects.Add
сверх AddChart
или AddChart2
;не нужно переписывать код, если он работает, но не используйте его в новом коде.
Что вам нужно сделать, это объявить переменную типа Chart
и установить ее следующим образом:
Dim cht As Chart
Set cht = ActiveSheet.ChartObjects.Add(100, 100, 360, 216).Chart
Set cht = ActiveSheet.Shapes.AddChart(xlXYScatterLines, 100, 100, 360, 216).Chart
Set cht = ActiveSheet.Shapes.AddChart2(240, xlXYScatterLines, 100, 100, 360, 216).Chart
Теперь вы можете выполнять дальнейшие операции на графике, присвоенном cht
.