Добавить диаграмму в документ Microsoft с веб-компонентами Office

Добавление диаграммы в документ Microsoft с компонентами Office для веб-компонентовРазве это не удивительно, как что-то простое, например, создание диаграммы, может иногда казаться таким сложным? Независимо от того, используете ли вы Excel, Word, Powerpoint или Access — иногда было бы неплохо просто вставить быструю диаграмму с кучей данных, не прибегая к целой настройке и обработке.

В этой статье я собираюсь показать вам, как использовать действительно удобный и простой объект VBA из веб-компонентов Microsoft Office, который позволяет вставлять диаграмму непосредственно в документ, презентацию или что-либо еще, где вы можете создать код VBA для его запуска. Это может также включать в себя продукты сторонних производителей, которые имеют серверную часть VBA, что многие делают.

В этом примере я собираюсь показать вам, как включить режим разработки в вашей программе (в данном случае мы будем использовать Microsoft Word), внедрить объект диаграммы в ваш проект, а затем как написать код, который заполняет его. в с данными.

В некоторых из моих прошлых статей на VBA некоторые из вас упоминали, что стоящая задача была слишком сложной для тех, кто никогда раньше не писал код. Я надеюсь, что после прочтения этой статьи у вас появится желание попробовать свои силы в VBA. Приведенный здесь код очень прост и прост в написании. Внедрение этой таблицы — отличный способ испачкать руки с VBA, если вы никогда не пробовали ее раньше.

Если вы знаете VBA, то это отличный инструмент для того, чтобы начать встраивать быстрые диаграммы в ваши проекты с гораздо меньшими усилиями, чем когда-либо прежде.

Включение режима дизайна

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

В этом примере я собираюсь поместить эти значения жестко закодированными в «массив» прямо внутри кода VBA, но в конечном итоге вы можете использовать различные методы для загрузки этих переменных массива (массив — это просто переменная, которая содержит список значений) из других источников, таких как внешняя электронная таблица или даже форма, в которую вы вводите значения вручную каждый месяц.

Чтобы узнать, как импортировать данные в Word из Excel, прочитайте мою статью

по теме. В этой статье мы сосредоточимся на создании диаграммы для отображения данных.

Добавление диаграммы в документ Microsoft с веб-компонентами Office wordchart1

Теперь, когда я начал свой документ, я хочу войти в код. В Word или Excel вы делаете это, нажимая «Файл», «Параметры», а затем нажимаете на опцию «Настройка ленты». Справа от параметров вы увидите столбец «Customize the Ribbon», а в поле «Main Tabs» вы должны увидеть «Developer» не отмеченным. Проверьте эту коробку.

Добавление диаграммы в документ Microsoft с веб-компонентами Office wordchart2

Вернувшись к документу, вы должны увидеть доступный пункт меню «Разработчик». В этом меню вы найдете кнопку «Режим дизайна».

Добавление диаграммы в документ Microsoft с веб-компонентами Office wordchart3

Нажмите «Режим разработки», затем щелкните значок этой папки / инструментов для «Устаревших инструментов», а затем в правом нижнем углу всплывающего окна в разделе «Элементы управления ActiveX» нажмите кнопку «Дополнительные элементы управления».

Прокрутите список доступных элементов управления, пока не дойдете до «Microsoft Office Chart xx.x». Если на вашем компьютере установлен Microsoft Office, скорее всего, этот элемент управления будет доступен.

Добавление диаграммы в документ Microsoft с веб-компонентами Office wordchart4

Вставив элемент управления в документ, вы увидите, что он отображается в виде поля с надписью «Веб-компоненты Microsoft Office» внутри. По сути, это ваш пустой график, готовый для отображения ваших данных.

Добавление диаграммы в документ Microsoft с веб-компонентами Office wordchart5

Следующим шагом является написание кода, который установит тип вашей диаграммы, и отображение данных. Если вы хотите, чтобы процесс выполнялся вручную, вы можете поместить на документ кнопку, которая загрузит данные в диаграмму, но в моем случае я хотел, чтобы все было полностью автоматизировано. В тот момент, когда я открывал документ, я хотел, чтобы он запустил скрипт, который загружает диаграмму, так что вы можете сделать это в коде (нажмите кнопку Visual Basic, чтобы войти в редактор кода), выбрав Объект документа и «Открытое» событие.

Это автоматически поместит пустую функцию под названием «Document_Open ()» в ваш код. Внутри этой функции вы хотите вставить следующий код.

Private Sub Document_Open()
 Dim i As Integer
 Dim oChart
 Dim oSeries1
 Dim oSeries2
 'Create arrays for the x-values and the y-values
 Dim xValues As Variant, yValues1 As Variant, yValues2 As Variant
 xValues = Array("Electric Bill", "Mortgage", "Phone Bill", _
 "Heating Bill", "Groceries", _
 "Gasoline", "Clothes", "Shopping")
 yValues1 = Array(124.53, 1250.24, 45.43, 253.54, 143.32, 259.85, 102.5, _
 569.94)
 yValues2 = Array(110, 1250, 50, 200, 130, 274, 95, _
 300)

Этот раздел кода создает три массива. Первый (xValues) — это, по сути, ваш список описаний оси X для каждого элемента данных. В моем случае я создаю столбчатую диаграмму с помощью yValues1, но вы также можете создать линейный график. Я покажу вам, как это сделать с помощью yValues2. Теперь вставьте также следующий сегмент кода.

 With ThisDocument.ChartSpace1
 .Clear
 .Refresh
 Set oChart = .Charts.Add
 oChart.HasTitle = True
 oChart.Title.Caption = "Monthly Budget Numbers vs Average"

Этот раздел кода создает фактически сам график в вашем контейнере «chartspace». На вашем графике нет никаких данных на данный момент, но с помощью нескольких команд вы можете установить заголовок для диаграммы, а также заголовок. Теперь пришло время добавить данные. Вставьте следующий код под кодом, который вы уже вставили, чтобы сделать это.

Set oSeries1 = oChart.SeriesCollection.Add
 With oSeries1
 .Caption = "This Month"
 .SetData chDimCategories, chDataLiteral, xValues
 .SetData chDimValues, chDataLiteral, yValues1
 .Type = chChartTypeColumnClustered
 End With
 'Add another series to the chart with the x-values and y-values
 'from the arrays and set the series type to a line chart
 Set oSeries = oChart.SeriesCollection.Add
 With oSeries
 .Caption = "Average Spending"
 .SetData chDimCategories, chDataLiteral, xValues
 .SetData chDimValues, chDataLiteral, yValues2
 .Type = chChartTypeLineMarkers
 End With

Приведенный выше код создает две серии для отображения на графике. Первая серия настраивает данные для отображения внутри объекта диаграммы в формате «ColumnClustered», а вторая серия настраивается для отображения в формате «TypeLineMarkers». Это отобразит оба набора значений на одной и той же диаграмме, но при этом будут использоваться разные типы диаграмм, что на самом деле может быть очень хорошим способом отображения и сравнения нескольких наборов данных.

Теперь, когда данные добавлены, остается только привести в порядок ось и завершить детали диаграммы.

 'Format the Value Axes
 oChart.Axes(chAxisPositionLeft).NumberFormat = "$#,##0"
 oChart.Axes(chAxisPositionLeft).MajorUnit = 1000
 'Show the legend at the bottom of the chart
 oChart.HasLegend = True
 oChart.Legend.Position = chLegendPositionBottom
 End With
End Sub

Приведенный выше код форматирует числа на левой оси для отображения в числовом долларовом формате. Следующая строка настраивает максимальный предел вертикальной оси. Поскольку я знаю, что отдельные предметы не будут стоить больше 1000 долларов, для этого я установил максимальный предел по оси Y.

Сохраните документ, закройте его, снова откройте, и вуаля — вы получите диаграмму, автоматически загруженную данными из двух ваших массивов.

Добавление диаграммы в документ Microsoft с веб-компонентами Office wordchart6

Теперь, когда вы знаете, как вставлять диаграммы и автоматически загружать в них данные, просто подумайте о возможностях. Все, что вам нужно сделать, — это вставить в эти массивы любые внешние данные — может быть, электронную таблицу Excel, базу данных Access или что-то еще — и вдруг этот документ становится очень динамичным и ценным окном в сохраняемые данные.

Это только верхушка айсберга с объектами MS Office Web Components. Я начал с графиков, потому что нахожу эту функцию самой захватывающей. Добавление диаграмм в любое нужное вам приложение VBA с помощью очень короткого сценария очень полезно и очень эффективно.

Если вы все о диаграммах, почему бы не попробовать этот объект диаграммы? Знаете ли вы о каких-либо других полезных графических объектах для VBA? Как вы встраиваете данные в свои приложения? Поделитесь своими мыслями и опытом в разделе комментариев ниже.

Image Credit: Линейчатая диаграмма Tablet Finance через Shutterstock

Ссылка на основную публикацию
Adblock
detector