Отображение вкладки «Разработчик»
- Откройте вкладку Файл.
- Выберите пункт Параметры.
- Выберите пункт Настроить ленту.
- В разделе Настройка ленты в списке Основные вкладки установите флажок Разработчик.
Что такое макрос в Excel и зачем он нужен?
- Макросы применяются для автоматизации выполнения повторяющихся задач в Microsoft Office Excel. В Excel можно быстро записать макрос. Макрос можно создать, используя редактор Visual Basic в среде Microsoft Visual Basic или путем копирования всего макроса или его части в новый макрос.
Создание нового макроса
- Откройте вкладку Разработчик
- Выберите пункт Макросы
- Введите имя макроса
- Нажмите кнопку создать
- В открывшемся окне появится блок программы в котором будет находится программа макроса.
Sub Макрос1()
End Sub
Задание:
- Создайте макрос.
Запись макроса
- Откройте вкладку Разработчик
- Выберите пункт меню запись макроса
- Выполните в таблице действия которые вы хотите записать в макрос
- Нажмите остановить запись
- Режим запись макроса идеально подходит для исследования различных объектов и их методов языка VBA
Задание
- Создайте макрос.
- Выполните действия в книге Ексель.
- Остановите запись макроса.
- Просмотрите его код.
- Выполните макрос.
Создание пользовательской формы в VBA
Пользовательскую форму можно создать в VBA в меню insert->UserForm
Форма это Окно виндовс которое позволяет создавать пользовательский интерфейс для управления макросами.
Для запуска формы нужно воспользоваться методом Show.
Пример макроса который запускает форму.
Sub macros() UserForm1.Show End Sub
Чтобы открыть вкладку с макросами щелкните по Module1
Для того чтобы открыть редактор форм щелкните по UserForm1
Переменные в VBA
- Переменные используются для хранения значений используемых в макросах.
- Переменные бывают различных типов и с ними необходимо уметь работать понимать их специфику и уметь преобразовывать один тип данных в другой.
Переменная состоит из имени и выделенной области памяти, которая ему соответствует.
Для объявления или, другими словами, создания переменной используется ключевое слово Dim;
Dim x As Integer
Объявление целочисленной переменной x;
x=10
Запись значения 10 в переменную x;
x=x+10
Увеличение переменной x на 10
x=x-10
Уменьшение переменной x на 10
Dim x As Integer Dim y As Integer Dim z As Integer
Сложение двух переменных
z=x+y
Смена двух переменных местами.
z=x
x=y
y=z
Запись данных в ячейки таблицы использование объекта Range.
- Range(«A1»).Value = 10 — Запись значений в ячейку (10 – числовые данные записываются без кавычек)
- Range(«K9:R9»).Value = “Текст” – Запись значений в строку. (“Текст” – текстовые данные записываются в кавычках)
- Range(«K9:K29»).Value = 10 – Запись значений в столбец (Указываем диапазон адресов ячеек)
- Range(«K9:R29″).Value = 10 – Запись значений в выбранный диапазон (Указываем диапазон адресов ячеек)
Задание:
- Записать значение в одну ячейку.
- Заполнить нулями строку.
- Заполнить нулями Столбец.
- Записать различные текстовые значения в две ячейки.
- Записать различные числовые значения в две произвольные ячейки
- Записать значения из ячеек в переменные x и y
- Поменять местами переменные x и y
- Поменять местами значения в ячейка из которых взяли x и y
Целочисленные переменные и математические операции
Dim x As Integer x = 8.6 ' Обратите внимание в x будет записано значение 9 Dim y As Integer y = 26 Range("A1").Value = "x + y" Range("A2").Value = "x - y" Range("A3").Value = "x * y" Range("A4").Value = "x/y" Range("B1").Value = x + y Range("B2").Value = x - y Range("B3").Value = x * y Range("B4").Value = x / y
Обратите внимание на комментарий который оставлен в программе с помощью символа ‘
Чаще комментируйте свои программы.
В результате выполнения макроса вы должны увидеть данные как на рисунке ниже
Задание:
Создать макрос который выведет значения как на рисунке ниже.
Строковые переменные String
Dim book1 As String Dim book2 As String book1 = "Книга1" book2 = "Книга2" Range("A1").Value = book1+"; "+book2
Результат выполнения программы
Задание:
- Сложить две строковые переменные и записать в ячейку A1
- Записать любые текстовые значения в ячейки А2 А3
- Поменять значения ячеек A2 и А3 местами.
Double Дробные числа
Dim x As Double x = 5.5 MsgBox "Значение переменной х=" & x `Оператор & создает текстовую строку из различных типов данных
В этой программе мы использовали новую функцию MsgBox. Она выводит сообщение с текстом который идет после нее.
Задание:
- Объявить две переменные с плавающей точкой.
- Сложить их.
- И результат вывести в ячейку А1
- Объявить две целочисленные переменные и записать в них дробные значения.
- Сложить их.
- Результат вывести в ячейку A2
Циклы For Next
Немного терминологии
- Последовательность инструкций, предназначенная для многократного исполнения, называется телом цикла.
- Единичное выполнение тела цикла называется итерацией.
- Выражение определяющее, будет в очередной раз выполняться итерация, или цикл завершится, называется условием выхода или условием окончания цикла
- Переменная, хранящая текущий номер итерации, называется счётчиком итераций цикла или просто счётчиком цикла.Исполнение любого цикла включает первоначальную инициализацию переменных цикла, проверку условия выхода, исполнение тела цикла и обновление переменной цикла на каждой итерации. Кроме того, большинство языков программирования предоставляют средства для досрочного управления циклом, например, операторы завершения цикла, то есть выхода из цикла независимо от истинности условия выхода
'Простой цикл: Dim i As Integer For i = 1 To 100 Range("C" & i).Value = i Next i 'Цикл с шагом: For i = 1 To 100 Step 2 Range("B" & i).Value = i Next i
`Цикл с записью значений в ячейки For i = 1 To 100 Cells(i, i) = i Next i `Вложенный цикл с записью значений в ячейки Dim j As Integer For i = 1 To 100 For j = 1 To 100 Cells(i, j) = i * j Next j Next i ' для преждевременного выхода из цикла можно использовать Exit For
Задание:
- Вывести в столбец значения от 0 до 100
- Вывести в столбец значения от 100 до 0
- Вывести в столбец значения от 60 до 100
- Вывести в столбец значения от -39 до 100
- Вывести в строку четные числа
- Вывести в строку нечетные числа.
- Вывести в строку ряд 100 200 300 …..
Оператор if — Оператор ветвления
Оператор ветвления применяется в случаях, когда выполнение или невыполнение некоторого набора команд должно зависеть от выполнения или невыполнения некоторого условия. Ветвление — одна из трёх (наряду с последовательным исполнением команд и циклом) базовых конструкций структурного программирования.
В зависимости от значения выражения будет выполнена та или иная группа операторов.
If выражение then
Выполняем программу
endif
В качестве выражения могут быть следующие операторы
A=B — РАВНО
A<B — МЕНЬШЕ
A>B — БОЛЬШЕ
A<=B — МЕНЬШЕ ИЛИ РАВНО
A>=B — БОЛЬШЕ ИЛИ РАВНО
A<>B — НЕ РАВНО
Полная запись оператора if
Dim I as integerIf count = 0 Then … ElseIf count = 1 … Else … End If
Задание
- Записать в таблицу произвольные значения.
- С помощью цикла поменять знак у значений которые больше пяти.
- Записать произвольные числа в два столбца.
- Записать сумму двух ячеек первых двух столбцов в третий столбец используя циклы.
Вложенный цикл с условиями.
For i = 1 To 100 For j = 1 To 100 Cells(i, j) = "" If i * j > 1000 Then Cells(i, j) = ">" ElseIf i = 100 Or j = 100 Then Cells(i, j) = "100" Else Cells(i, j) = "<" End If Next j Next i
Преобразование типов данных
Очень часто возникает необходимость преобразовать один тип данных в другой.
Для этого в Бейсике есть набор функций для преобразования типов данных.
CDbl(значение) — Преобразует в double
CInt(значение) — Преобразует в Int
CStr(значение) — Преобразует в строку
Задание 1.
В ячейки А1-А10 записать произвольные значения. Вывести в ячейку А11 ячейки А1-А10 через точку с запятой
Задание 2.
Объявить целочисленные переменные A и B и задать им значения 34 и 16.
Записать в столбец А
А+B=
A-B=
A*B=
A/B=
В столбец B вывести значения расчетов.
Задание 3
В цикле вывести значения от 1 до 100 в столбец А
Задание 4
В цикле вывести значения от -50 до 50 в столбец А
Задание 5
Вывести в столбец А в цикле все четны числа от 1 до 20
Задание 6
Задать произвольные значения в ячейках A1-A20
Записать в эти ячейки три раза 10 и посчитать сколько раз встречается цифра 10 в ячейках А1-А20
Результат вывести в ячейку А21
Задание 7
В столбцы А и B записать по 10 произвольных значений.
В столбец C вывести значения которые являются уникальными для столбца А и для B
В столбец D вывести значения которые есть в обоих столбцах А и B
Задание 8.
Ввести произвольные значения в столбец А
и развернуть их в строку 1.
Задание 9
Записать в таблицу размером 10×10 нули и единицы в шахматном порядке
010101
101010
010101
Задание 10
записать в таблицу 10х10 значения координат ячеек
1;1 1;2 1;2
2;1 2;2 2;3
Развернуть таблицу на 90 градусов и скопировать в соседний лист. найти функцию копирования ячеек и переноса их в другой лист с использованием функции записать макрос.