Макрос для построения графиков в excel

Обновлено: 08.07.2024

Скажите пожалуйста, как программно построить линейную диаграмму в excel при том условии, что количество строк, являющихся источником данный все время будет разным?
Я научилась их строить для четко определенного диапазона, а вот как быть если он (диапазон) всегодя разный?

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь


Построение диаграмм excel vba
начал строить диаграмму через макрос, но столкнулся с проблемой объединенных несвязанных.

Построение диаграмм в программе EXCEL
Опытным путем установлено, что процент потерь сырья при перевозке от производителя до пункта.

Программное создание диаграмм в 8.0
Расскажите (или дайте ссылку) как построить график в 1С 8.0 программно! ;)

Построение диаграмм
Программа подключена к БД. Как построить диаграмму интенсивности продаж по дате.

3 года назад я писал подобное для одного крупного магазина (Анализ выручки по разным составляющим за разные периоды).
Правда, у меня диаграммы строились по данным СТОЛБЦОВ, поэтому менялось количество столбцов - но суть та же.
Ещё на диаграмме был присобачен контрол со списком СТРОК (количество которых, кстати, тоже менялось) для смены источника данных по которым строится диаграмма, и при клике на названии выбранной строки, график немедленно перестраивался по новым данным.
Постараюсь найти исходник, выбросить все ненужное (там несколько метров листинга - много чего ещё в той программе делалось) и выслать. TO SPQuick:
А можно и мне посмотреть на пример реализации этой проблеммы?

Если можете узнать програмно(хотя это не обязательно) диапазон по которому Вы хотите сделать диаграмму, то попробуйте обозвать диапазон

А потом по нему уже и диаграмку можно на царапать

Ну параметрами поиграешь сама, пробуй через Record New Macro

Получено с помощью макрорекордера
'Лист1' и 'А1:A7' можно заменить на переменные

Всем спасибо! все уже работает давто, все строится и рисуется)) Вот так всегда: для себя и под себя. Ну нет выложили бы решение, когда оно найдено, и не нужно было вновь поднимать вопрос. И другому кому-нибудь на пользу! Решение слишком большое и времени отделить конкретно построение от моей задачи у меня нет. Если кому-то ОЧЕНЬ нужно, пишите мне, я отвечу.

Подскажите пожалуйста в чем у меня ошибка? Хотелось бы построить линейную диаграмму, а не выходит

Подскажите пожалуйста в чем у меня ошибка? Хотелось бы построить линейную диаграмму, а не выходит Возможно, при вдумчивой адресации и допустимых значениях переменных. Мне было непонятно, почему разные ряды заканчиваются одной и той же ячейкой Cells(a, b). Возможно, при вдумчивой адресации и допустимых значениях переменных. Я не знаю значений a и b. Ряды должны быть равными по длине.
В Worksheet(1), 1 можно заменить на явное имя листа "Data" или другое.
Если стоит Option Explicit, то X1 и Y1 надо предварительно объявить. Morgen84, в твоем файле редкая для меня и не очевидная ошибка, так как
я обычно работаю в программных модулях, а не в модулях классов листов.
Пока не пометил цветом нужный Range не было заметно, что когда работаешь c Range, он подразумевался на листе с кнопкой CommandButton2.
Я вынес процедуру работы с диаграммой в модуль Module1.:dance3:

Уважаемый, KoGG!
Поместил макрос в module1 и наблюдается та же ошибка в определении x1 и y1. Пытался отедельно выделить нужный range все получаяется

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

Здравствуйте!
Присоединюсь к теме, поскольку вопрос у меня похожий.
Имеются два одномерных массива данных, построенных программно. Все значения массивов не выводятся в ячейки Excel, а находятся в памяти компьютера. Размерность каждого из массивов составляет 20 000 элементов. Подскажите пожалуйста, как можно построить линейную диаграмму, где в качестве оси абсцисс будет один массив, а по оси ординат ему в соответствующие приведены соответствующие значения элементов второго массива. Программа все время выдает ошибку '1004' Application defined or object defined error на выделенных в тексте фрагментах

Построение диаграмм
Здравствуйте. Нужно построить гистограмму. Насколько я знаю стандартного контрола для этого нет.

Построение диаграмм
Можете плиз помочь доделать нужно просто в коде дописать так чтоб одна часть диаграми отходила.

Построение диаграмм
Доброе утро! Скажите пожалуйста, как можно построить диаграмму с линейной зависимостью?

Построение диаграмм
Добрый вечер, хотелось бы уточнить один вопрос. Я не пойму как изобразить на топографической.

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

Вот, например, данные по курсам валют за несколько месяцев:

interactive-chart1.jpg

Строить график по всей таблице, как легко сообразить, не лучшая идея. Красивым решением в подобной ситуации может стать создание интерактивной диаграммы, которую пользователь может сам подстраивать под себя и ситуацию. А именно:

  • двигаться по оси времени вперед-назад в будущее-прошлое
  • приближать-удалять отдельные области диаграммы для подробного изучения деталей графика
  • включать-выключать отображение отдельных валют на выбор

Выглядеть это может примерно так:

Нравится? Тогда поехали.

Шаг 1. Создаем дополнительную таблицу для диаграммы

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

interactive-chart2.jpg

В Excel 2007/2010 к созданным диапазонам можно применить команду Форматировать как таблицу ( Format as Table) с вкладки Главная ( Home) :

interactive-chart3.jpg

Это даст нам следующие преимущества:

  • Любые формулы в таких таблицах автоматически транслируются на весь столбец – не надо «тянуть» их вручную до конца таблицы
  • При дописывании к таблице новых строк в будущем (новых дат и курсов) – размеры таблицы увеличиваются автоматически, включая корректировку диапазонов в диаграммах, ссылках на эту таблицу в других формулах и т.д.
  • Таблица быстро получает красивое форматирование (чересстрочную заливку и т.д.)
  • Каждая таблица получает собственное имя (в нашем случае – Таблица1 и Таблица2), которое можно затем использовать в формулах.

Подробнее про преимущества использования подобных Таблиц можно почитать тут.

Шаг 2. Добавляем флажки (checkboxes) для валют

В Excel 2007/2010 для этого необходимо отобразить вкладку Разработчик ( Developer) , а в Excel 2003 и более старших версиях – панель инструментов Формы ( Forms) . Для этого:

  • В Excel 2003: выберите в меню Вид – Панели инструментов – Формы (View –Toolbars –Forms)
  • В Excel 2007: нажать кнопку Офис – ПараметрыExcel – Отобразить вкладку Разработчик на ленте (OfficeButton –Exceloptions –ShowDeveloperTabintheRibbon)
  • В Excel 2010: Файл – Параметры – Настройка ленты – включить флаг Разрабочик (File –Options –CustomizeRibbon –Developer)

На появившейся панели инструментов или вкладке Разработчик ( Developer) в раскрывающемся списке Вставить ( Insert) выбираем инструмент Флажок ( Checkbox) и рисуем два флажка-галочки для включения-выключения каждой из валют:

interactive-chart4.jpg

Текст флажков можно поменять, щелкнув по ним правой кнопкой мыши и выбрав команду Изменить текст ( Edit text) .

interactive-chart5.jpg

Теперь привяжем наши флажки к любым ячейкам для определения того, включен флажок или нет (в нашем примере это две желтых ячейки в верхней части дополнительной таблицы). Для этого щелкните правой кнопкой мыши по очереди по каждому добавленному флажку и выберите команду Формат объекта ( Format Control) , а затем в открывшемся окне задайте Связь с ячейкой ( Cell link) .

Шаг 3. Транслируем данные в дополнительную таблицу

Теперь заполним дополнительную таблицу формулой, которая будет транслировать исходные данные из основной таблицы, если соответствующий флажок валюты включен и связанная ячейка содержит слово ИСТИНА (TRUE):

interactive-chart6.jpg

Заметьте, что при использовании команды Форматировать как таблицу ( Format as Table) на первом шаге, формула имеет использует имя таблицы и название колонки. В случае обычного диапазона, формула будет более привычного вида:

Обратите внимание на частичное закрепление ссылки на желтую ячейку (F$1), т.к. она должна смещаться вправо, но не должна – вниз, при копировании формулы на весь диапазон.

Шаг 4. Создаем полосы прокрутки для оси времени и масштабирования

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

Полосу прокрутки ( Scroll bar) берем там же, где и флажки – на панели инструментов Формы ( Forms) или на вкладке Разработчик ( Developer) :

interactive-chart7.jpg

Рисуем на листе в любом подходящем месте одну за другой две полосы – для сдвига по времени и масштаба:

interactive-chart8.jpg

Каждую полосу прокрутки надо связать со своей ячейкой (синяя и зеленая ячейки на рисунке), куда будет выводиться числовое значение положения ползунка. Его мы потом будем использовать для определения масштаба и сдвига. Для этого щелкните правой кнопкой мыши по нарисованной полосе и выберите в контекстном меню команду Формат объекта ( Format control) . В открывшемся окне можно задать связанную ячейку и минимум-максимум, в пределах которых будет гулять ползунок:

interactive-chart9.jpg

Таким образом, после выполнения всего вышеизложенного, у вас должно быть две полосы прокрутки, при перемещении ползунков по которым значения в связанных ячейках должны меняться в интервале от 1 до 307.

Шаг 5. Создаем динамический именованный диапазон

Чтобы отображать на графике данные только за определенный интервал времени, создадим именованный диапазон, который будет ссылаться только на нужные ячейки в дополнительной таблице. Этот диапазон будет характеризоваться двумя параметрами:

  • Отступом от начала таблицы вниз на заданное количество строк, т.е. отступом по временной шкале прошлое-будущее (синяя ячейка)
  • Количеством ячеек по высоте, т.е. масштабом (зеленая ячейка)

Этот именованный диапазон мы позже будем использовать как исходные данные для построения диаграммы.

Для создания такого диапазона будем использовать функцию СМЕЩ ( OFFSET) из категории Ссылки и массивы ( Lookup and Reference) - эта функция умеет создавать ссылку на диапазон заданного размера в заданном месте листа и имеет следующие аргументы:

interactive-chart19.jpg

В качестве точки отсчета берется некая стартовая ячейка, затем задается смещение относительно нее на заданное количество строк вниз и столбцов вправо. Последние два аргумента этой функции – высота и ширина нужного нам диапазона. Так, например, если бы мы хотели иметь ссылку на диапазон данных с курсами за 5 дней, начиная с 4 января, то можно было бы использовать нашу функцию СМЕЩ со следующими аргументами:

interactive-chart10.jpg

Хитрость в том, что константы в этой формуле можно заменить на ссылки на ячейки с переменным содержимым – в нашем случае, на синюю и зеленую ячейки. Сделать это можно, создав динамический именованный диапазон с функцией СМЕЩ ( OFFSET) . Для этого:

  • В Excel 2007/2010 нажмите кнопку Диспетчер имен (NameManager) на вкладке Формулы (Formulas)
  • В Excel 2003 и старше – выберите в меню Вставка– Имя– Присвоить(Insert – Name – Define)

Для создания нового именованного диапазона нужно нажать кнопку Создать ( Create) и ввести имя диапазона и ссылку на ячейки в открывшемся окне.

Сначала создадим два простых статических именованных диапазона с именами, например, Shift и Zoom, которые будут ссылаться на синюю и зеленую ячейки соответственно:

interactive-chart11.jpg
interactive-chart12.jpg

Теперь чуть сложнее – создадим диапазон с именем Euros, который будет ссылаться с помощью функции СМЕЩ ( OFFSET) на данные по курсам евро за выбранный отрезок времени, используя только что созданные до этого диапазоны Shift и Zoom и ячейку E3 в качестве точки отсчета:

interactive-chart13.jpg

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

Аналогичным образом создается именованный диапазон Dollars для данных по курсу доллара:

interactive-chart14.jpg

И завершает картину диапазон Labels, указывающий на подписи к оси Х, т.е. даты для выбранного отрезка:

interactive-chart15.jpg

Общая получившаяся картина должна быть примерно следующей:

interactive-chart16.jpg

Шаг 6. Строим диаграмму

Выделим несколько строк в верхней части вспомогательной таблицы, например диапазон E3:G10 и построим по нему диаграмму типа График ( Line) . Для этого в Excel 2007/2010 нужно перейти на вкладку Вставка ( Insert) и в группе Диаграмма ( Chart) выбрать тип График ( Line) , а в более старших версиях выбрать в меню Вставка – Диаграмма ( Insert – Chart) . Если выделить одну из линий на созданной диаграмме, то в строке формул будет видна функция РЯД ( SERIES) , обслуживающая выделенный ряд данных:

interactive-chart18.jpg

Эта функция задает диапазоны данных и подписей для выделенного ряда диаграммы. Наша задача – подменить статические диапазоны в ее аргументах на динамические, созданные нами ранее. Это можно сделать прямо в строке формул, изменив

=РЯД(Лист1!$F$3;Лист1! $E$4:$E$10 ;Лист1! $F$4:$F$10 ;1)

=РЯД(Лист1!$F$3;Лист1! Labels ;Лист1! Euros ;1)

Выполнив эту процедуру последовательно для рядов данных доллара и евро, мы получим то, к чему стремились – диаграмма будет строиться по динамическим диапазонам Dollars и Euros, а подписи к оси Х будут браться из динамического же диапазона Labels. При изменении положения ползунков будут меняться диапазоны и, как следствие, диаграмма. При включении-выключении флажков – отображаться только те валюты, которые нам нужны.

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

- Выполняем команду Вид - Макросы - Запись макроса - введем имя макроса, например, «График».

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

Для построения диаграммы выделяем ячейки В15:Н15, затем нажимаем клавишу Ctrl и выделяем ячейки В20:Н20, вызываем Мастер Диаграмм. Выбираем вид диаграммы «гистограмма». Для ряда «Количество работающих буровых станков» изменим тип диаграммы на график. Далее в меню формат ряда выбираем параметры ряда по «вспомогательной оси». В результате получаем график с двумя осями «у», одна ось для указания «количества работающих буровых станков», другая - для указания «процента выполнения планового задания каждым буровым станком». Присваиваем названия осям, а также название диаграмме и размещаем легенду сверху над диаграммой. Размещаем диаграмму на отдельном листе. Полученная диаграмма представлена на рисунке 3.

Показатели эффективности работы буровых станков предприятия

Рисунок 3 - Показатели эффективности работы буровых станков предприятия

Выполните команду Вид - Макросы - Остановить Запись.

Созданный макрос далее применяется при проектировании интерфейса, который будет привязан к кнопке.

Разработаем интерфейс программы, которая осуществляет добавление и удаление строчек в таблицу 3 при помощи кнопки «ДОБАВЛЕНИЕ И УДАЛЕНИЕ буровых станков».

Для создания кнопки открываем меню «Разработчик» и нажимаем на кнопку «Конструктор» (она должна быть утоплена) - тем самым включится режим конструктора. Далее нажимаем вставить и выбираем «Элементы ActiveX» кнопку «Кнопка», переходим в область рабочего листа и, нажав левую клавишу мыши, рисуем кнопку. Нажав кнопку «Свойства» на панели инструментов, устанавливаем свойство Caption = «ДОБАВЛЕНИЕ И УДАЛЕНИЕ буровых станков». Привязываем к кнопке процедуру запуска формы1. Для этого 2 раза щелкаем по ней левой кнопкой мыши и между строк начала и конца процедуры, которые генерируются автоматически вставляем команду показать (Show) форму UserForm1.

Private Sub CommandButton1_Click()

Данная программа создается в модуле рабочего листа 1 (того, где расположена кнопка).

Нажатие на кнопку «ДОБАВЛЕНИЕ И УДАЛЕНИЕ буровых станков» открывает форму1. Проект формы1 представлен на рисунке 4.

Для создания формы1 перейдем в редактор VBA командой Разработчик - Редактор Visual Basic. В редакторе выполним команду Insert - UserForm. В окне свойств UserForm1 изменим свойство Caption = Работа с исходными данными - этот текст появится в строке надписи формы1.

Проект Формы1

Рисунок 4 - Проект Формы1

На вид формы1 оказывает влияние структура таблицы в Excel. На ней размещены поля (TextBox) для ввода № самосвала и его объемы перевозок за месяцы январь, февраль, март, апрель, май, июнь. Т.е. предполагается ввод в таблицу по строкам (как в базах данных) - это интервалы ячеек: В6:Н6, В7:Н7 и т.д. Дополнительно в таблицу и в форму1 добавлено поле «№ записи». В поле «Суммарное количество пробуренных метров» осуществляется вывод этого результата из ячеек диапазона I6:I14. Кроме того на форме1 размещены надписи (lebel).

На форме расположены элементы управления. Названия кнопок формы введены аналогично п. 6.2 путем изменения её свойства Caption. Элементы управления выполняют следующие функции:

- Счетчик (SpinButton1) - осуществляет переход по записям таблицы и позволяет отражать в полях формы (TextBox) значения из ячеек таблицы и записывать значения полей формы (когда добавляется новая запись) в ячейки таблицы Cells (i, j).

- Кнопка «Добавить запись» - из полей формы1 записывает новую строку в ячейки таблицы Excel, например, A9:I9, для этого пользователь должен ввести в поля формы значения для новой строки таблицы.

- Кнопка «Удалить запись» - удаляет выбранную запись, переписыванием нижележащей записи на выбранную.

- Кнопка «Посмотреть ИТОГИ» - загружает форму2.

- Кнопка «Закрыть Форму» - закрывает форму1.

Пропишем код передвижения счетчика вверх и вниз. Для написания кода два раза щелкаемь по счетчику на форме. В модуле формы в списке событий выбраем для SpinButton1 события SpinUp (счетчик возрастает) и SpinDown (счетчик уменьшается). Между строками начала и конца процедуры набираем следующий код:

Private Sub SpinButton1_SpinDown()

n = Val (TextBox8. Text)

TextBox8. Text = Str(n)

Private Sub SpinButton1_SpinUp()

n = Val (TextBox8. Text)

TextBox8. Text = Str(n)

В процедурах используется обращение к процедуре ReadRec(n) - читать n-ю запись из ячеек таблицы и писать в поля формы.

Создаем код процедуры ReadRec для Для этого выполняем команду Insert - Module и в открывшемся модуле набираем следующий код.

Public n As Integer

Public Sub ReadRec(rec)

TextBox1. Value = Cells (rec + 5, 2).Value

TextBox2. Value = Cells (rec + 5, 3).Value

TextBox3. Value = Cells (rec + 5, 4).Value

TextBox4. Value = Cells (rec + 5, 5).Value

TextBox5. Value = Cells (rec + 5, 6).Value

TextBox6. Value = Cells (rec + 5, 7).Value

TextBox7. Value = Cells (rec + 5, 8).Value

TextBox9. Value = Cells (rec + 5, 9).Value

Программируем отклик кнопки «Добавить запись». Открываем форму1, затем 2 раза щелкаем по кнопке «Добавить запись» и прописываем процедуру:

Private Sub CommandButton1_Click()

TextBox8. Text = Str(n)

В отклике кнопки «Добавить запись» содержится обращение к процедуре WriteRec - писать запись из полей формы1 в ячейки таблицы.

Для написания кода этой процедуры переходим в модуль (Modul), где содержится код процедуры ReadRec и далее набираем код процедуры WriteRec:

Public Sub WriteRec(rec)

Cells (rec + 5, 1).Value =.TextBox8. Value

Cells (rec + 5, 2).Value =.TextBox1. Value

Cells (rec + 5, 3).Value =.TextBox2. Value

Cells (rec + 5, 4).Value =.TextBox3. Value

Cells (rec + 5, 5).Value =.TextBox4. Value

Cells (rec + 5, 6).Value =.TextBox5. Value

Cells (rec + 5, 7).Value =.TextBox6. Value

Cells (rec + 5, 8).Value =.TextBox7. Value

Cells (rec + 5, 9).FormulaR1C1 = «=SUM (RC[-6]:RC[-1])»

Программируем отклик кнопки «Удалить запись». Открываем форму1, затем 2 раза щелкаем по кнопке «Удалить запись» и прописываем процедуру:

Private Sub CommandButton2_Click()

Для написания кода процедуры DelRec переходим в модуль, где содержатся коды процедур ReadRec и WriteRec и далее набираем код процедуры DelRec:

Public Sub DelRec(rec)

While Worksheets(1).Cells (i, 1).Value <> «»

Cells (i, 2).Value = Cells (i + 1, 2).Value

Cells (i, 3).Value = Cells (i + 1, 3).Value

Cells (i, 4).Value = Cells (i + 1, 4).Value

Cells (i, 5).Value = Cells (i + 1, 5).Value

Cells (i, 6).Value = Cells (i + 1, 6).Value

Cells (i, 7).Value = Cells (i + 1, 7).Value

Cells (i, 8).Value = Cells (i + 1, 8).Value

Cells (i, 9).FormulaR1C1 = Cells (6, 9).FormulaR1C1

Программируем отклик кнопки «Посмотреть Итоги». Открываем форму1, 2 раза щелкаем по кнопке «Посмотреть Итоги» и прописываем процедуру:

Private Sub CommandButton4_Click()

Программируем отклик кнопки «Закрыть форму» для этого открываем форму1 путем двойного щелчка по кнопке «Закрыть форму» и прописываем процедуру:

Private Sub CommandButton3_Click()

Далее продолжим программирование процедур откликов кнопок формы2 «Просмотр результатов».

Для кнопки «ПОКАЗАТЬ» необходимо из 21 строки таблицы вывести в надписи значения ячеек в формате с двумя знаками после запятой.

Для этого нажимаем два раза кнопку «ПОКАЗАТЬ» и прописываем следующую процедуру:

Private Sub CommandButton1_Click()

Label11. Caption = FormatNumber (Cells(21, 3), 2)

Label12. Caption = FormatNumber (Cells(21, 4), 2)

Label13. Caption = FormatNumber (Cells(21, 5), 2)

Label14. Caption = FormatNumber (Cells(21, 6), 2)

Label15. Caption = FormatNumber (Cells(21, 7), 2)

Label16. Caption = FormatNumber (Cells(21, 8), 2)

Label28. Caption = FormatNumber (Cells(23, 9), 0)

Label30. Caption = FormatNumber (Cells(25, 9), 0)

Далее программируем отклик кнопки «ГРАФИК» путем прописывания следующей процедуры:

Private Sub CommandButton2_Click()

Макрос «ГРАФИК» получен действиями п. 5 и результат выполнения представлен на рисунке 3.

Программирование отклика кнопки «Закрыть форму». Открываем форму2, затем 2 раза щелкаем по кнопке «ЗАКРЫТЬ» и прописываем процедуру:

Private Sub CommandButton2_Click()

В следующем разделе рассмотрим использование разработанного интерфейса для работы с таблицей.


Визуализация очень важна в любых данных. В Excel, когда мы представляем данные в виде таблиц и сводной таблицы, другому пользователю может быть трудно понять основной сценарий из данных. Таким образом, в Excel у нас есть графики для представления наших данных. Диаграммы - это визуальное представление данных, представленных в строках и столбцах таблицы Excel. Теперь мы все знаем, как вставить диаграмму в таблицу Excel. В этой теме мы узнаем об использовании диаграмм в VBA. Это так же просто, как мы используем графики в Excel. Теперь, как на рабочем листе, где у нас есть различные типы графиков, аналогично, у нас есть все графики в VBA также в виде объекта. Все, что нам нужно сделать, это вызвать этот объект, чтобы использовать его. Мы можем создавать диаграммы из VBA на одном листе или на отдельном листе. Однако наиболее целесообразно использовать диаграммы на отдельном листе, чтобы избежать путаницы.

Каковы графики в VBA? Графики - это простые объекты в VBA. Мы можем сделать два типа диаграмм в VBA. Один из них известен как лист диаграммы, а другой - как встроенные диаграммы. На листе диаграммы VBA создает новый лист для диаграммы. Мы даем справочные данные, которые являются другим рабочим листом в качестве исходных данных. Теперь встроенные диаграммы - это те диаграммы, которые присутствуют в одном листе данных. Теперь кодирование для этих двух типов диаграмм немного отличается друг от друга, которое мы изучим в этой теме. Чтобы использовать свойства диаграммы в VBA, мы используем символ точки (.) В качестве IntelliSense. Теперь нам нужно помнить одну вещь: в Excel существуют различные типы графиков. Если мы не предоставляем тип диаграммы для нашего кода, VBA автоматически создает столбчатую диаграмму для нас по умолчанию. Очевидно, мы можем изменить это несколькими строками кода.

Как создать диаграммы в Excel VBA?

Теперь давайте научимся создавать диаграммы в Excel VBA на нескольких примерах.

Вы можете скачать этот шаблон VBA Charts Excel здесь - Шаблон VBA Charts Excel

Для всех примеров мы рассмотрим одну информацию, которая представлена ​​на листе 1 следующим образом:


Excel VBA Charts - Пример № 1

Во-первых, давайте узнаем, как вставить диаграмму в VBA, для этого выполните следующие шаги:

Шаг 1: Начните с подпроцедуры следующим образом.

Код:


Шаг 2: Объявите одну переменную как объект диаграммы.

Код:


Шаг 3: Чтобы использовать графики, нам нужно вызвать метод add, как показано ниже.

Код:


Шаг 4. Чтобы использовать свойства объекта диаграммы, вставьте оператор With в код, как показано ниже.

Код:


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

Код:


Шаг 6: Теперь запомните, что мы не предоставили никакой тип диаграммы, сначала давайте запустим приведенный выше код, нажав клавишу F5, и посмотрим, какой тип диаграммы будет вставлен.


У нас есть новый лист, который называется «Диаграмма», и в нем есть наш график.

Шаг 7: Теперь давайте дадим коду тип диаграммы, которую мы хотим использовать для этого представления,


Шаг 8: Давайте выберем трехмерную область для этого примера, как показано ниже,

Код:


Шаг 9: Запустите код, нажав клавишу F5 или нажав кнопку «Воспроизвести» и проверьте тип диаграммы на рабочем листе.


Теперь помните, что каждый раз, когда мы запускаем код, он создает новый лист диаграммы для нас. Это также называется листом диаграммы, потому что он создает диаграммы на другом листе.

Excel VBA Charts - Пример № 2

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

Шаг 1: В том же модуле запустите еще одну подпроцедуру следующим образом.


Шаг 2: Снова объявите переменную как тип диаграммы следующим образом.

Код:


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

Код:


Шаг 4: Теперь остальная часть создания и проектирования диаграмм схожа, мы снова добавили оператор With в код следующим образом.

Код:


Шаг 5: Позвольте нам указать место, где будет находиться наша диаграмма, поскольку мы не хотим, чтобы она находилась над нашими данными, поэтому перед С помощью Statement добавьте следующий код туда, где мы установили нашу диаграмму, следующим образом.

Код:


Шаг 6: Теперь давайте предоставим источник данных и тип диаграммы, которые мы хотим видеть следующим образом.

Код:


Шаг 7: Запустите код, нажав клавишу F5 или нажав кнопку «Воспроизвести» и посмотрите результат на нашем листе, где данные следующие.


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

Excel VBA Charts - Пример № 3

Существует также другой способ создания диаграмм в наших таблицах с использованием VBA. Этот метод известен как метод ChartsObject.

Шаг 1: В том же модуле давайте начнем с третьей подпроцедуры следующим образом.

Код:


Шаг 2: Конус как лист данных, другой тип как диапазон и один как объект диаграммы, как показано ниже.

Код:


Шаг 3: Сначала установите на листе, где находятся данные, в данном случае это лист 1.

Код:


Шаг 4: Теперь выберите диапазон данных у нас следующим образом.

Код:


Шаг 5: Теперь установите объект диаграммы, чтобы добавить диаграмму, используя свойство объекта диаграммы следующим образом.

Код:


Шаг 6: Теперь давайте приведем источник диаграммы следующим образом.

Код:


Шаг 7: Теперь выберите желаемый тип диаграммы следующим образом.

Код:


Шаг 8: Запустите код, нажав клавишу F5 или нажав кнопку «Воспроизвести» и посмотрите результат на листе 1.


То, что нужно запомнить

  • Мы можем решить, какой тип диаграмм мы хотим использовать, установив тип диаграммы.
  • В типе диаграммы - количество раз, когда мы запускаем код, новый лист создается под уникальным именем диаграммы с диаграммой внутри.
  • Объект Chart также является членом листов, в которых есть как диаграммы, так и листы.
  • Чтобы использовать объект диаграммы, нам нужно использовать инструкцию SET, чтобы сначала установить диаграмму.

Рекомендуемые статьи

Это руководство к диаграммам VBA. Здесь мы обсудим, как создавать диаграммы в Excel с использованием кода VBA, а также с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

Читайте также: