«Автоматизация документов Microsoft Office Excel,Word,Access»
Диаграммы Excel из VBA.
Привязка диапазона данных к диаграмме средствами VBA.


Понятно, что в ручном режиме задать диапазоны подписей по оси ОХ и значений целевой функции для диаграммы не составляет труда…

Щелчок правой клавишей мыши по диаграмме… Из контекстного меню выбираем «Выбрать данные» и получаем диалоговое окно «Выбор источника данных»…

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

Благодаря VBA можно перепоручить машине рассчитать размер массива (диапазона) данных и связать этот диапазон со свойствами диаграммы… Пусть пользователю останется только ввести данные на форму и щелкнуть по кнопке «Вывод на график»…

Задание:

На диаграмме, размещенной на листе Excel, отображать график одной из функций

    (по выбору пользователя, используя радиокнопки)
  • у=Sin(x) или
  • у=х*Sin(x) или
  • у=х*х*Sin(x) .

Параметры графика функции (начало диапазона, конец диапазона, шаг) пользователь задает на форме ввода параметров

Решение:

Диаграммы Excel из VBA с помощью макросов

Из условия понятно, что первым делом нужно добавить в проект UserForm… Добавляем…

Визуальное проектирование формы каждый волен делать в соответствии со своими эстетическими пристрастиями…

Чтобы на выходе получались значения различных функций в зависимости от выбранной радиокнопки можно написать объединяющую функцию

Private Function myF(aX As Double) As Double
   If Me.OptionButton1 Then
       myF = Sin(aX)
   ElseIf Me.OptionButton2 Then
       myF = aX * Sin(aX)
   Else 'If Me.OptionButton3 Then
       myF = aX * aX * Sin(aX)
   End If
End Function

Заполнение диапазона данных целесообразно начинать всегда с одной и той же ячейки, которая заранее определена константами (и желательно, скрыта от глаз пользователя) ...

Const rowNa As Integer = 2
Const colX As Integer = 100
Const colY As Integer = colX + 1

Заполнение диапазона производится в цикле (в обработчике события Click соответствующей командной кнопки)…

siz = (xk - x0) / h
For i = 0 To siz
Cells(rowNa + i, colX) = x0 + i * h
Cells(rowNa + i, colY) = myF(Cells(rowNa + i, colX))
Next i

Также и привязка заполненного диапазона к диаграмме производится в обработчике события Click соответствующей командной кнопки…

mySeries.Name = "Y(x)"
mySeries.XValues = "=" & Lname & "!R" & rowNa & "C" & colX & ":R" & rowNa + siz & "C" & colX
mySeries.Values = "=" & Lname & "!R" & rowNa & "C" & colY & ":R" & rowNa + siz & "C" & colY

Первая строка позволяет переопределить название серии (по вашему желанию).
Вторая строка – позволяет задать подписи данных (диапазон) для оси Х в диаграмме Excel.
Третья строка – позволяет задать собственно значения функции (диапазон) для оси Y.
Как видите, конец привязываемого диапазона определяется суммой переменных rowNa + siz, поэтому вне зависимости от параметров пользователя (длины интервала и частоты шага) на графике будет показан весь интервал (понятно, что с разной степенью подробности).

Логическая функция CheckData() возвращает True только при наличии всех допустимых (приемлемых) значениях от пользователя и, кроме того, инициализирует значения переменных уровня модуля x0, xk, h, myChart, mySeries.


Скачать xlsm-файл… Привязка диапазона данных к диаграмме средствами VBA Excel

Скачать xlsm-файл… Привязка диапазона данных к диаграмме средствами VBA Excel (второй вариант: через массивы более быстрый)

Тестируйте! Желающим предоставляется консультация по скайпу (по исходному коду и сам исходный код, конечно, тоже)... ,

Для читателей моих рассылок исходный код открыт...
Обращайтесь... Если ваш е-mail есть в моей подписной базе, то вышлю пароль бесплатно !

Это наиболее легкий вариант связи …
А ведь можно связывать любые виды диаграмм и данных ... И все что угодно. Включайте фантазию...

Принцип один: Все что делает человек по определенным правилам (алгоритму) можно запрограммировать и поручить машине… .

Другие примеры на тему «Автоматизация документов Microsoft Office Excel,Word,Access»




Если на этой странице не нашлось того, что Вы так искали...

         Не расстраивайтесь, не все потеряно... Смело щелкайте...

исходный код на заказ. orenstudent.ru Автоматизация документов MS Office. orenstudent.ru исходный код на заказ. orenstudent.ru Помогите найти и устранить ошибку в исходном коде программы. orenstudent.ru Skype-консультирование по программированию
Скайп-консультации

Акция !!!
Весь код по 49 руб


требуются
школьники!


и СТУДЕНТЫ!
Кому не плевать
на деньги!
Сайт помощи студентам по программированию и информатике

Program code