#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 недоступен, поэтому это ограничивает наши возможности по созданию графиков.