Опубликовано Оставить комментарий

Примеры макросов excel

формулы эксельВ статье рассмотрены примеры основных операторов и функций макросов excel, которые можно использовать в работе как готовые блоки.

Основа макроса

Sub programm() ‘начало макроса
Макрос — команды, которые будут выполнены
End Sub ‘конец макроса

Элементы макроса

  • Workbooks — книги excel. Обозначение: Workbooks(«Книга1»). Если в макросе не указана книга, значит макрос будет выполнен в активной книге.
  • Worksheets — листы excel. Обозначение: Worksheets(«Лист1»). Если в макросе не указан лист, значит макрос будет выполнен на активном листе.
  • Rows — строки. Обозначение: Rows(1), Rows(«2:4»). EntireRow – целая строка.
  • Columns — столбцы. Обозначение: Columns(1), Columns(«2:4»). EntireColumn – целый столбец
  • Cells — ячейки. Обозначение: Cells(1, 2) — ячейка, где 1 — номер строки, 2 — номер столбца
  • Range — смежные ячейки на рабочем листе. Обозначение: Range(Cells(1, 2), Cells(3, 4)).

Примеры обозначений:
Workbooks(«Книга2»).Worksheets(«Лист2»).Cells(1,1) 
Worksheets(«Лист2»).Range(«A5»)
Worksheets(«Лист2»).Range(«A1:B10»)
Cells(1, 2) 
Range(Cells(1, 2), Cells(3, 4))
Rows(«2:4»)
Columns(«2:4») 

Математические операторы в макросах

^ — возведение в степень
* — умножение
/ — деление
+ — сложение
— — вычитание
Abs — абсолютное значение числа. Пример: Abs(-20) ⇒ 20; Abs(20) ⇒ 20.
Sqr -квадратный корень. Пример: Sqr(4) ⇒ 2

Работа с текстом

Len() — число символов в строке. Пример: Len(«абвгдеж») ⇒ 7
Left(), Right(), Mid()— возможность взять указанное количество символов из существующей строковой переменной слева (с начала), справа (с конца) или из середины соответственно.
Примеры:
Left(«абвгдежзиклмн», 4)  возвращает строку «абвг»;
Right(«абвгдежзиклмн», 4) возвращает строку «клмн»;
Mid(«абвгдежзиклмн», 4, 5) возвращает строку «гдежз».

Форматирование ячеек с помощью макросов

Cells(1, 1).Font.Name = «Courier New» ‘формат шрифта
Cells(1, 1).Font.Size = 17 ‘размер шрифта
Cells(1, 1).Font.Color = 12632256 ‘цвет шрифта
Cells(1, 1).Font.Bold = True ‘жирный
Cells(1, 1).Font.Italic = True   ‘ курсив
Range(.Cells(1, 1), Cells(2, 2)).Merge ‘объединить ячейки
Range(.Cells(6, 1), Cells(200, 30)).HorizontalAlignment = xlCenter ‘выравнивание по центру по горизонтали
Range(.Cells(6, 1), Cells(200, 30)).VerticalAlignment = xlCenter ‘выравнивание по центру по вертикали
Cells(1, 1).Interior.Color = 10053375 ‘выделить ячейку цветом 
Range(Cells(1, 2), Cells(3, 4)).Borders.LineStyle = True ‘границы ячеек
Range(Cells(1, 2), Cells(3, 4)).Borders.Color = vbBlue ‘изменить цвет границы

ОПЕРАТОР  условия «IF … THEN» —

Он проверяет условие:
➜ если оно истинно (TRUE) — выполняется заданный набор действий (обязательное),
➜ если ложно (FALSE) – другой набор действия (необязательное).

Пример: Запись примера в карточке
If Cells(1, 2) > 10 Then ‘если значение ячейки больше 10
Cells(1, 2).Interior.Color = 65535 ‘выделить ячейку желтым цветом 
Else ‘если условие не выполняется
Cells(1, 2).Interior.Color = 5296274 ‘выделить ячейку зеленым цветом 
End If

ЦИКЛ «FOR … NEXT»

Он предназначен для запуска цикла, который повторяется определенное (заданное) количество раз для каждой переменной.

‘Пример: Запись примеров по математике в строчках с 8 по 16 через одну
For i = 8 To 16 Step 2 ‘i — задается номер строки с 8 по 16, шаг = 2.  Цикл запускается 5 раз (для 8,10,12,14,16 строчек)
a1 = Int(Rnd * n) ‘формируется первое слагаемое от 0 до (n-1)
a2 = Int(Rnd * n) + 1 ‘формируется второе слагаемое от 1 до n
Cells(i, 1) = a1 & » + » & a2 & » = » ‘запись примера в i-й строке и 1-м столбце
Next i

Комментарии

Комментарии – это строки в коде, которые используются в качестве заметок. Они очень важны для написания кода, так как  помогают разобраться, какие действия выполняются в строчках. Они не участвуют в процессе выполнения программы и не влияют на результат работы макроса. 
Комментарии начинаются апострофом (‘) и в коде автоматически выделяются зеленым цветом, чтобы было понятно, что это комментарий.
Многие ленятся добавлять комментарии к своей программе. Но несколько минут, потраченных на написание понятного комментария, могут сэкономить кучу времени в будущем.

 

Если Вам статья помогла в написании макросов,  то можно переходить к более детальному изучению макросов excel. Настройку работы макросов excel и их создание лучше осваивать на конкретном примере, где понятна цель написания программы. Изучить основы макросов можно на курсе  «Excel макросы: генератор простых примеров по математике«.

Добавить комментарий