Нещодавно я виконував завдання з контрольної роботи, в якому від мене вимагалося наступне: «В Excel автоматизувати розрахунок, побудувати таблиці значень функції та графіка. Побудова починається після натискання на кнопку ». Була задана функція y = 4 * (i + 2) ^ (2/3), початкова і кінцева координати, а також крок розрахунку. Як це має виглядати, я представив досить швидко.
Також швидко у мене дозрів алгоритм реалізації поставленого завдання.
Але як за допомогою VBA форматувати і додати діаграму, я на той момент не знав.
Тому, щоб зрозуміти, як вставити діаграму в робочий лист за допомогою макросу, я взяв і записав такий макрос. Тобто у вкладці «Вид» знайшов «Макрос» і вибрав «Запис макросу». Після чого додав на робочий лист діаграму, також вибрав діапазон даних для діаграми, в загальному, отримав наступний код:
Тут, видно, що рядки «ActiveSheet.Shapes.AddChart.Select» безпосередньо додає графік, наступний рядок «ActiveChart.ChartType = xlXYScatterSmoothNoMarkers» визначає його тип. «ActiveChart.SeriesCollection.NewSeries» - додавання нового діапазону даних ( «Ряду»).
Рядок «ActiveChart.SeriesCollection (1) .Name =" = "" y "" "" визначає назву графіка на діаграмі, а рядки «ActiveChart.SeriesCollection (1) .XValues =" = Лист1! $ A $ 1: $ A $ 8 " , ActiveChart.SeriesCollection (1) .Values = "= Лист1! $ B $ 1: $ B $ 8" »- це діапазони значень« x »і« y ».
На аркуші ж ми отримали нічим непримітну діаграму.
Тепер знаючи, яка рядок для чого призначена, легко змінити їх і налаштувати під свої потреби.
Але перш створимо заготовку для нашого макросу, а саме додамо кнопку (вкладка «Розробник») і запишемо вихідні дані для розрахунків.
Добре. Далі набираємо код макросу.
x1 = Cells (1, 2) .Value
x2 = Cells (2, 2) .Value
shag = Cells (3, 2) .Value
For i = x1 To x2 Step shag
y = 4 * (i + 2) ^ (2/3)
Cells (j, 3) .Value = i
Cells (j, 4) .Value = y
ActiveChart.SeriesCollection (1) .Name = "=" "Графік функції" ""
ActiveChart.SeriesCollection (1) .XValues = Range ( "C" 1, "C" j)
ActiveChart.SeriesCollection (1) .Values = Range ( "D" 1, "D" j)
Пояснимо деякі моменти коду.
«Columns (" C: D "). ClearContents» - очистимо діапазон, перед тим як туди щось записувати.
«Cells (1, 10) .Select» - латочка, без неї може некоректно відображатися графік.
Цикл «For» виконується поки «i» не стане рівна кінцевому значенню «x2».
Після збереження макросу, переходимо до нашої попередньо доданої кнопці і призначаємо їй макрос (правою клавішею на кнопці, а далі призначити макрос).
Залишилося тільки натиснути на кнопку і подивитися результати.
У нас все працює, значить, ми все зробили правильно. Таким чином, ми вивчили успішний прийом написання макросу, згадали як додавати діаграму, розібралися як призначати макрос кнопці.