Как создать экземпляр графической диаграммы?

#vba #graph #ms-word

#vba #График #ms-word

Вопрос:

В настоящее время я пытаюсь создать диаграмму, например, piechart с помощью word vba.

Проблема в том, что на компьютерах, на которых будет запущен этот word vba, не доступен Excel, доступны только word и ms graph.

Я пытался создать диаграмму с помощью ms graph, но я не могу заставить ее работать.

Как показано в приведенном ниже коде, я могу создавать диаграммы с помощью inlineshapes и chart, и я получаю красивую столбчатую диаграмму, представленную в окне word.

Я не могу создать экземпляр элемента chart для Ms Graph. Я нашел руководство на французском языке, в котором показано, как это должно быть сделано, но я не могу заставить часть «me.graphique1» иметь смысл.

Встроенные формы

 Dim vlChart As Chart

Set vlChart = ActiveDocument.InlineShapes.AddChart2.Chart
  

График

 Dim vlChart As Graph.Chart

Set vlChart = Me.Graphique1.Object.Application.Chart
  

Я ожидал бы, что смогу создать объект graph, но я не знаю, что я делаю.

Ответ №1:

Нет гарантий, что это все еще будет работать, поскольку MS Graph давно устарел. Следующий пример кода демонстрирует, как вставить объект MS Graph и получить доступ к его таблице данных.

Для этого кода требуется ссылка на библиотеку объектов MS Graph в VBA Tools / References. Я настоятельно рекомендую вам использовать его, по крайней мере, при написании кода, чтобы у вас был Intellisense.

 Dim grph as Graph.Chart
Dim grphData as Graph.DataSheet
Dim grphApp as Graph.Application
Dim doc as Word.Document
Dim oleF as Word.OLEFormat
Dim rng as Word.Range

Set doc = ActiveDocument
Set rng = doc.Content
Set oleF = doc.InlineShapes.AddOLEObject(ClassType:="MSGraph.Chart.8", Range:=rng).OLEFormat
oleF.DoVerb
Set grphChart = oleF.Object
Set grphApp = grphChart.Application
Set grphData = grphApp.DataSheet
grphData.Cells.Clear
'Now start entering the data and formatting the chart
  

Комментарии:

1. Большое вам спасибо! Несмотря на то, что MS Graph очень старая, это то, что мне нужно использовать в моей текущей ситуации, Excel недоступен, поэтому это ограничивает наши возможности по созданию графиков.