
Информатика_1 / Информатика / Задания VBA1
.docЗадание 1. Создайте в Excel программу для ввода номеров от 1 до 100 в столбце A.
Выполнение: откройте редактор VBA: {Alt+F11}. В редакторе VBA создайте модуль: Insert → Module. В окне проекта введите текст:
Sub Zadanie1()
i = 1
For i = 1 To 100
Cells(i, 1) = i
Next i
End Sub
На листе Excel создайте кнопку, при нажатии на которую будет выполняться макрос Zadanie1: Меню Разработчик → Вставить → Кнопка (Для того чтобы вызвать вкладку разработчик необходимо выполнить следующую команду Кнопка «Office» → Параметры Excel → Основные → поставить галочку «Показывать вкладку «Разработчик» на ленте»). Поставьте кнопку на листе и выберите для неё имя макроса Zadanie1. Нажмите на любую ячейку, а затем на кнопку.
Задание 2. Создайте в VBA
следующий модуль. В нем напишите программу
для вычисления выражения
,
где значение x
вводите через диалоговое окно InputBox:
Результат вычисления выведите в ячейку C1.
Задание 3. Создайте в VBA
следующий модуль. В нем напишите программу
для вычисления выражения
,
где значение x
вводите через диалоговое окно InputBox.
Результат вычисления поместите в ячейку
D1.
Задание 4. «Забейте» столбец B случайными числами от 0 до 10. Количество строк – столько же, сколько и непустых ячеек столбца A (в данном случае 100).
Выполнение: Когда известно количество строк, проще всего использовать операторы цикла For.. Next. В таком случае код программы будет иметь вид:
Sub Zadanie4()
i = 1
For i = 1 To 100
Cells(i, 2) = Int((10 * Rnd) + 0)
Next i
End Sub
где функция Int((10 * Rnd) + 0) генерирует целые случайные числа от 0 до 10
Однако, в большинстве случаев, например, при создании баз данных в Excel, количество строк, с которыми необходимо работать – неизвестно. В этом случае лучше использовать оператор Do.. Loop:
Sub Zadanie4()
i = 1
Do
Cells(i, 2) = Int((10 * Rnd) + 0)
i = i + 1
Loop Until Cells(i, 1) = ""
End Sub
где цикл выполняется до тех пор (Until), пока не найдется пустая ячейка (Cells(i,1)="") первого столбца.
Задание 5. Создайте следующую программу:
-
в начале выводится диалоговое окно InputBox, где предлагается ввести целое число N от 1 до 10;
-
далее выводится диалоговое окно N раз, где вам предлагается ввести марку автомобилей (используя цикл For.. Next);
-
все введенные марки автомобилей записываются во втором столбце в Лист2;
-
первый столбец заполняется числами от 1 до N (используя цикл Do.. Loop).
Задание 6. Создайте следующую программу, где на Листе3:
-
в ячейки A1, B1 и C1 вводятся ваши Фамилия, Имя и Отчество соответственно,
-
в ячейки A2, B2 и C2 – первые три символа ячеек A1, B1 и C1 соответственно,
-
в ячейки A3, B3 и C3 – третьи и четвертые символы ячеек A1, B1 и C1 соответственно,
-
в ячейки A4, B4 и C4 – последний символ ячеек A1, B1 и C1 соответственно,
-
в ячейке B5 содержатся символы ячеек A4, B4 и C4, разделенные пробелом.
Выполнение: Для работы со строковыми переменными используются функции:
-
Left(строковая_переменная, i) – извлечение из строковой_переменной i символов с начала строки;
-
Right(строковая_переменная, i) – извлечение из строковой_переменной i символов с конца строки;
-
Mid(строковая_переменная, j, i) – извлечение из строковой_переменной i символов начиная с j-го символа.
-
Len(строковая_переменная) – возвращает количество символов в строковой переменной.
Код программы будет выглядеть следующим образом:
Sub Zadanie6()
Sheets("Лист3").Activate
Fam = InputBox("Введите Фамилию", "Окно ввода")
Imya = InputBox("Введите Имя", "Окно ввода")
Otch = InputBox("Введите Отчество", "Окно ввода")
Cells(1, 1) = Fam
Cells(1, 2) = Imya
Cells(1, 3) = Otch
Cells(2, 1) = Left(Fam, 3)
Cells(2, 2) = Left(Imya, 3)
Cells(2, 3) = Left(Otch, 3)
Cells(3, 1) = Mid(Fam, 3, 2)
Cells(3, 2) = Mid(Imya, 3, 2)
Cells(3, 3) = Mid(Otch, 3, 2)
Cells(4, 1) = Right(Fam, 1)
Cells(4, 2) = Right(Imya, 1)
Cells(4, 3) = Right(Otch, 1)
Cells(5, 2) = Cells(4, 1) + " " + Cells(4, 2) + " " + Cells(4, 3)
End Sub
Задание 7. Создайте программу, которая подсчитает сколько раз символ, который вы введете через InputBox, встречается в ячейках A1, B1 и C1 в Лист3.