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

  • Edmund Richardson
  • 0
  • 2569
  • 448
Реклама

Разве не удивительно, что иногда такая простая вещь, как создание диаграммы, может иногда казаться такой сложной? Используете ли вы Excel, Word, Powerpoint или Access - иногда было бы неплохо просто вставить быструю диаграмму с кучей данных, не занимаясь настройкой и работой.

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

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

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

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

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

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

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

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

Теперь, когда я начал свой документ, я хочу войти в код. В Word или Excel вы делаете это, нажимая на “файл”, “Опции” и затем нажмите на опцию, чтобы настроить ленту. В правой части опций вы увидите “Настроить ленту” столбец, а в “Основные вкладки” поле, которое вы должны увидеть “разработчик” бесконтрольно. Проверьте эту коробку.

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

Нажмите на режим проектирования, а затем нажмите на эту папку / значок инструментов для “Устаревшие инструменты”, а затем в правом нижнем углу всплывающего окна, под элементами управления ActiveX, нажмите на “Больше элементов управления” кнопка.

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

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

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

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

Private Sub Document_Open ()  Дим я как целое  Dim OChart  Dim oSeries1  Dim oSeries2  Создать массивы для значений x и значений y  Dim xValues ​​как вариант, yValues1 как вариант, yValues2 как вариант  xValues ​​= Array ("Счет за электричество", "Ипотека", "Счет за телефон", _  "Отопление Билл", "Продовольственные товары", _  "Бензин", "Одежда", "Шоппинг")  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. Теперь вставьте также следующий сегмент кода.

 С ThisDocument.ChartSpace1  .Очистить  .обновление  Установите oChart = .Charts.Add  oChart.HasTitle = True  oChart.Title.Caption = "Ежемесячные номера бюджета против среднего"
 

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

Установите oSeries1 = oChart.SeriesCollection.Add  С oSeries1  .Подпись = "В этом месяце"  .SetData chDimCategories, chDataLiteral, xValues  .SetData chDimValues, chDataLiteral, yValues1  .Type = chChartTypeColumnClustered  Конец с  Добавить еще одну серию на график с значениями x и y  'из массивов и установите тип серии для линейного графика  Установите oSeries = oChart.SeriesCollection.Add  С oSeries  .Заголовок = "Средние расходы"  .SetData chDimCategories, chDataLiteral, xValues  .SetData chDimValues, chDataLiteral, yValues2  .Type = chChartTypeLineMarkers  Конец с

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

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

 'Отформатируйте оси значений
 oChart.Axes (chAxisPositionLeft) .NumberFormat = "$ #, ## 0"  oChart.Axes (chAxisPositionLeft) .MajorUnit = 1000  «Показать легенду внизу графика  oChart.HasLegend = True  oChart.Legend.Position = chLegendPositionBottom
 Конец с
End Sub

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

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

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

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

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

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




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