Как получить доступ к новым диаграммам в Excel 2016?

Я хочу получить доступ к новым диаграммам, добавленным в MS Office 2016, в частности к каскадной диаграмме, через VBA.

Я записал макрос при добавлении его вручную, но макрос, похоже, не распознает тип диаграммы.


person L. Kleiven    schedule 30.06.2016    source источник
comment
Это просто xlWaterfall   -  person Rory    schedule 30.06.2016


Ответы (2)


Я не использую MS 2016, но я думаю, что один из способов найти тип диаграммы для будущего использования — это разместить каскадную диаграмму на листе, а затем запустить быструю подпрограмму, которая возвращает Chart.ChartType для каждой диаграммы на листе. Это должно вернуть целочисленное значение, которое затем можно использовать для установки других диаграмм в этот тип. код должен быть примерно таким:

MsgBox(ActiveSheet.ChartObjects(1).Chart.ChartType)
person RGA    schedule 30.06.2016
comment
Вы также должны найти все типы диаграмм в разделе msdn.microsoft.com/us- en/library/office/ff838409.aspx# - person Tom K.; 30.06.2016
comment
@Tom Сначала я проверил там, но, похоже, он не отображает значение для каскадной диаграммы, на которую ссылается OP. Я предполагаю, что перечисление еще не было обновлено, чтобы включить дополнения к выпуску 2016 года, и в этом случае этот код должен найти тип. - person RGA; 30.06.2016
comment
Его по-прежнему нет в списке на странице Microsoft, но если вы посмотрите в обозревателе объектов VBIDE в разделе XlChartType, вы сможете найти все новые типы диаграмм, включая xlWaterfall. - person Jon Peltier; 06.01.2020

В последней сборке программы предварительной оценки Office 365 средство записи макросов поддерживает каскадные диаграммы. Вот код, записанный, когда я добавлял каскадную диаграмму и устанавливал три столбца на итоги:

Sub Macro1()
'
' Macro1 Macro
'

'
    ActiveSheet.Shapes.AddChart2(395, xlWaterfall).Select
    ActiveSheet.ChartObjects("Chart 1").Activate
    ActiveChart.FullSeriesCollection(1).Select
    ActiveChart.FullSeriesCollection(1).Points(1).Select
    ActiveChart.FullSeriesCollection(1).Points(1).IsTotal = True
    ActiveChart.FullSeriesCollection(1).Points(4).Select
    ActiveChart.FullSeriesCollection(1).Points(4).IsTotal = True
    ActiveChart.FullSeriesCollection(1).Points(7).Select
    ActiveChart.FullSeriesCollection(1).Points(7).IsTotal = True
    Application.CommandBars("Accessibility").Visible = False
    Range("A1").Select
End Sub

Обратите внимание, что многие функции новых диаграмм, в том числе водопады, недоступны с помощью VBA и даже с помощью обычного пользовательского интерфейса. Например, вы можете установить минимум и максимум по вертикальной оси, но не основную единицу (между делениями).

person Jon Peltier    schedule 05.01.2020