Макроси в excel це просто

Нещодавно я виконував завдання з контрольної роботи, в якому від мене вимагалося наступне: «В 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».

Після збереження макросу, переходимо до нашої попередньо доданої кнопці і призначаємо їй макрос (правою клавішею на кнопці, а далі призначити макрос).

Залишилося тільки натиснути на кнопку і подивитися результати.

У нас все працює, значить, ми все зробили правильно. Таким чином, ми вивчили успішний прийом написання макросу, згадали як додавати діаграму, розібралися як призначати макрос кнопці.