 
        
        Сборник задач по VBA
.pdf 
Министерство образования Республики Беларусь Учреждение образования
«МОГИЛЕВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПРОДОВОЛЬСТВИЯ»
Кафедра «Информатика и вычислительная техника»
Сборник задач по VBA
Методические указания для студентов всех специальностей и аспирантов
Могилев 2008
 
УДК 681.3
Рассмотрены и рекомендованы к изданию на заседании кафедры
«Информатика и вычислительная техника» Протокол № 9 от « 14 » апреля 2008 г.
Составитель
В.Л. Титов
Рецензенты:
кандидат технических наук, доцент, заведующий кафедрой «Автоматизированные системы управления» Белорусско-Российского университета
С.К. Крутолевич
кандидат физико-математических наук, доцент кафедры «Математического анализа, информатики и вычислительной техники» Могилевского государственного университета им. А.А. Кулешова С.Н. Батан
Методические указания представляет собой задачник по программированию на языке
Visual Basic for Applications (VBA).
Данные методические указания предназначены для аспирантов и студентов всех специальностей, изучающих дисциплины «Информатика», «Информатика и компьютерная графика», «Основы информационных технологий».
© УО «Могилевский государственный университет продовольствия», 2008
2
Введение
Основная цель данного методического указания – научить аспирантов и студентов программировать на языке Visual Basic for Applications (VBA).
Поскольку основные трудности при создании программ связаны с разработкой алгоритмов, т.е. методов их решения, то особое внимание в методическом указании уделяется рассмотрению структур данных и алгоритмов, призванных обрабатывать эти данные.
В методическом указании предложено большое количество задач (более 200), от простых до достаточно сложных.
Методическое указание состоит из 7 частей, содержащих как типовые задачи, т.е. ввода–вывода, использование циклов, работа с массивами, поиск и сортировка, так и задачи, которые, как правило, остаются за рамками традиционных курсов программирования, работа с пользовательскими формами.
3
 
Часть 1. СОЗДАНИЕ МАКРОСОВ
Начальные сведения по решению задач данной части содержатся в частях 1 и 2 учебно-методического пособия «Программирование на VBA».
Приступая к решению задач этого раздела, следует вспомнить, что:
üпри записи макроса макрорекордер записывает все действия пользователя, включая ошибки и неправильные запуски;
üзаписанные макрорекордером макросы не универсальны, поскольку они
могут только повторять однажды выполненные последовательности команд и только в том же самом порядке, в которых вы их записали;
üзаписанные макросы не гибки, поскольку они не учитывают изменения обстоятельств и условий;
üприменение макросов повышает скорость работы и, главное, точность и надежность.
1. Создайте макрос в Excel, который строит график функции y = x2 - x - 2 на отрезке [-3,3].
2.Создайте макрос в Excel, который заливает ячейку B1 ярко-зеленым цветом, вычисляет разность ячеек A1, A2 и выводит результат в ячейку B1 шрифтом Arial, подчеркнутым, 14 размером.
3.Создайте макрос в Excel, вычисляющий площадь поверхности и объем цилиндра (ячейки, содержащие r, h , должны быть подписаны).
S = 2 × p × r × (h + r)
V= p× r2 × h
4.Создайте макрос в Excel, который переводит вес из фунтов в килограммы (один фунт равен 409,5 г; ячейки, содержащие фунты и килограммы, должны быть подписаны).
5.Создайте макрос в Excel, который выводит на синем фоне красными буквами в текущую ячейку сообщение «Visual Basic for Applications (VBA)»
шрифтом Times New Roman, обычным, 12 размером.
6.Создайте макрос в Excel, который выделенный диапазон ячеек одной строки A1:H1 сортирует по убыванию.
7. Создайте макрос в Excel, вычисляющий площадь треугольника:
S = 12 × a × h, где a – длина основания треугольника, h – его высота (ячейки,
содержащие a, h, должны быть подписаны).
8. Создайте макрос в Excel, который выводит, начиная с текущей ячейки, четверостишие:
Унылая пора! Очей очарованье! Приятна мне твоя прощальная краса. Люблю я пышное природы увяданье, В багрец и золото одетые леса.
А.С. Пушкин
4
 
9.Создайте макрос в Excel, который вычисляет произведение чисел, расположенных в выделенном диапазоне 5-и ячеек.
10.Создайте макрос в Excel, который копирует ячейки A1:C2 и выводит их содержимое, начиная с ячейки F20.
11.Создайте макрос в Excel, который из последовательности чисел, расположенных в ячейках A1:A10, выводит последовательность с положительными числами в ячейки B1:B10.
12.Создайте макрос в Excel, вычисляющий объем и площадь поверхности шара (ячейка, содержащая r , должна быть подписана).
V = 34 × p× r3
S= 4 × p × r2
13.Создайте макрос в Excel, который переносит ячейки A1:A10 в ячейки
E16:E25.
14.Создайте макрос в Excel, который выводит в текущей ячейке фразу: «Каждый охотник желает знать, где сидят фазаны», позволяющую запомнить порядок следования цветов радуги (первая буква слова кодирует цвет: каждый – красный, охотник – оранжевый, желает – желтый, знать – зеленый, где – голубой, сидят – синий, фазаны – фиолетовый). Каждое слово фразы должно быть выведено соответствующим цветом.
15.Создайте макрос в Excel, который переводит расстояния из километров в версты (одна верста равна 1066,8 м.; ячейки, содержащие километры и версты, должны быть подписаны).
16.Создайте макрос в Excel, который выделенный диапазон ячеек одного столбца B1:B10 сортирует по возрастанию.
17.Создайте макрос в Excel, который выводит, начиная с ячейки B3, на синем фоне серыми буквами 16 размером четверостишие:
Буря мглою небо кроет, Вихри снежные крутя; То, как зверь, она завоет, То заплачет, как дитя.
А. С. Пушкин
18. Создайте макрос в Excel, вычисляющий объем конуса (ячейки, содержащие r, h , должны быть подписаны).
S= 13 × p× r2 × h
19.Создайте макрос в Excel, который для ячеекA2:B10 строит точечную диаграмму (значения X: A2:A10, значения Y: B2:B10).
20.Создайте макрос в Excel, который вычисляет сумму чисел, расположенных в ячейках A1:B10, и выводит результат в ячейку B11.
21.Создайте макрос в Excel на изменение ширины текущего столбца
5
 
(Ширина столбца 20).
22.Создайте макрос в Excel, который объединяет ячейки B7:H7 и выводит на желтом фоне синими буквами в объединенной ячейке сообщение «Создание макроса» шрифтом Times New Roman, обычным, 12 размером.
23.Создайте макрос в Excel, который для ячеек A2:C2 строит круговую диаграмму.
24.Создайте макрос в Excel на изменение высоты текущей строки (Высота строки 25).
25.Создайте макрос в Excel, вычисляющий площадь круга: S = p× r2 , где r – радиус круга (ячейка, содержащая r , должна быть подписана).
26.Создайте макрос в Excel, который строит график функции y = x2 -1 на
отрезке [-2,2].
27.Создайте макрос в Excel на изменение угла наклона текста в текущей ячейке (90 градусов).
28.Создайте макрос в Excel, вычисляющий объем полого цилиндра (ячейки,
содержащие r1, r2, h , должны быть подписаны; r1 − радиус цилиндра, r2 − радиус отверстия, h −высота цилиндра).
V= p × h ×(r12 - r22 )
29.Создайте макрос в Excel на добавление листа в книгу.
30.Создайте макрос в Excel, вычисляющий площадь трапеции: S = a +2 b × h ,
где a, b – длины оснований, h – высота трапеции (ячейки, содержащие a, b, h , должны быть подписаны).
Часть 2. СОЗДАНИЕ ПРОГРАММ С ЛИНЕЙНОЙ СТРУКТУРОЙ
Начальные сведения по решению задач данной части содержатся в части 3 учебно-методического пособия «Программирование на VBA».
Приступая к решению задач этого раздела, следует вспомнить, что:
üпрограммы с линейной структурой являются простейшими и используются, как правило, для реализации обычных вычислений по формулам;
üв программах с линейной структурой инструкции выполняются последовательно, одна за другой.
üалгоритм программы с линейной структурой может быть представлен следующим образом:
6
 
Начало
| Ввод исход- | С клавиатуры | 
| ных данных | |
| 
 | 
 | 
| Обработка | 
 | 
| (вычисления) | 
 | 
| Ввод исход- | На экран | 
| ных данных | монитора | 
| 
 | 
 | Конец | ||
| 1. Составьте блок-схему и программу на языке VBA для вычисления | ||||
| площади прямоугольника. | 
 | 
 | 
 | |
| Исходные данные: | 
 | 
 | Результат: | |
| Длинна (см): 9 | 
 | 
 | Площадь прямоугольника: 67,5 (кв. см) | |
| Ширина (см): 7,5 | 
 | 
 | 
 | |
| 2. Составьте блок-схему и программу на языке VBA для вычисления | ||||
| стоимости покупки, состоящей из нескольких тетрадей и карандашей. | ||||
| Исходные данные: | 
 | 
 | Результат: | |
| Цена тетради (руб.): 450 | 
 | Стоимость покупки: 2 940 (руб.) | ||
| Количество тетрадей (шт.): 5 | 
 | 
 | ||
| Цена карандаша (руб.): 230 | 
 | 
 | ||
| Количество карандашей (шт.): 3 | 
 | |||
| 3. Составьте блок-схему | и программу на языке VBA для вычисления | |||
| значения функции f (x, y) = | x3 | − y | . | |
| 1+ x2 + y4 | ||||
| Исходные данные: | Результат: | |||
| 
 | 
 | |||
| x = 2, y = 1 | 
 | 
 | f (x, y) = 1,1666666 | |
4. Составьте блок-схему и программу на языке VBA для вычисления объема прямоугольного параллелепипеда.
| Исходные данные: | Результат: | 
| Длина (дм): 9 | Объем параллелепипеда: 337,5 (куб. дм) | 
| Ширина (дм): 7,5 | 
 | 
| Высота (дм): 5 | 
 | 
| 5. Составьте блок-схему и программу на языке VBA для вычисления | |
| расстояния между населенными пунктами, изображенными на карте. | |
| Исходные данные: | Результат: | 
| Масштаб карты (количество | Расстояние между населенными пунктами | 
| километров в одном см): 120 | 420 км. | 
| Расстояние между точками, | 
 | 
| изображающими населенные | 
 | 
| пункты (см): 3,5 | 
 | 
| 
 | 7 | 
6. Составьте блок-схему и программу на языке VBA для вычисления площади треугольника, если известна длина основания и высота.
| Исходные данные: | Результат: | 
| Основание (см): 8,5 | Площадь треугольника 42,5 (кв. см) | 
| Высота (см): 10 | 
 | 
7. Составьте блок-схему и программу на языке VBA для вычисления стоимости поездки на автомобиле на дачу (туда и обратно). Исходными данными являются: расстояние до дачи (в километрах); количество бензина, которое потребляет автомобиль на 100 км пробега; цена одного литра бензина.
| Исходные данные: | Результат: | 
| Расстояние до дачи (км): 34 | Поездка на дачу и обратно обойдется в | 
| Расход бензина (литров на | 14 796,8 руб. | 
| 100 км пробега): 8,5 | 
 | 
| Цена литра бензина (руб.): 2 560 | 
 | 
| 8. Составьте блок-схему и программу на языке VBA для вычисления | |
| объема куба. | 
 | 
| Исходные данные: | Результат: | 
| Длинна ребра (см): 9,5 | Объем куба 857,375 (куб. см) | 
9. Составьте блок-схему и программу на языке VBA для пересчета расстояния из верст в километры (1 верста равняется 1 066,8 м).
| Исходные данные: | Результат: | |
| Расстояние в верстах: 100 | Расстояние в километрах: 106,68 | |
| 10. Составьте блок-схему и программу на языке VBA для вычисления | ||
| объема цилиндра. | 
 | 
 | 
| Исходные данные: | Результат: | |
| Радиус основания (см): 5 | Объем цилиндра: 785,398 (куб. см) | |
| Высота цилиндра (см): 10 | 
 | 
 | 
| 11. Составьте блок-схему и программу на языке VBA для вычисления | ||
| стоимости некоторого количества (по весу) яблок. | ||
| Исходные данные: | 
 | Результат: | 
| Цена одного килограмма яблок (руб.): 8,5 | Стоимость покупки: 19,55 (руб.) | |
| Вес яблок (кг): 2,3 | 
 | 
 | 
| 12. Составьте блок-схему и | программу | на языке VBA для вычисления | 
площади поверхности прямоугольного параллелепипеда.
| Исходные данные: | Результат: | 
| Длина (см): 9 | Площадь поверхности: 90,00 (кв. см) | 
| Ширина (см): 7,5 | 
 | 
| Высота (см): 5 | 
 | 
13. Составьте блок-схему и программу на языке VBA для вычисления величины дохода по вкладу. Процентам ставка (в процентах годовых) и время хранения (в днях) задаются во время работы программы.
| Исходные данные: | Результат: | 
| Величина вклада (руб.): 2 500 000 | Доход: 41 100 (руб.) | 
| Срок вклада (дней): 30 | Сумма по окончании срока вклада: | 
| Процентная ставка (годовых): 20 | 2 541 100 (руб.) | 
8
14. Составьте блок-схему и программу на языке VBA для вычисления объема цилиндра.
| Исходные данные: | Результат: | ||
| Радиус основания (см): 5,5 | Объем цилиндра: 665,23 (куб. см) | ||
| Высота цилиндра (см): 7 | 
 | ||
| 15. Составьте блок-схему и программу на языке VBA для вычисления | |||
| значения функции f (x) = | sin(x) | . | |
| 2x2 + ex | |||
| 
 | 
 | ||
| Исходные данные: | Результат: | ||
| x = 1 | f (x) = 0,17834267 | ||
16. Составьте блок-схему и программу на языке VBA для вычисления площади трапеции, если известны средняя линия и высота трапеции.
| Исходные данные: | Результат: | 
| Средняя линия (см): 15,7 | Площадь трапеции: 150,72 (кв. см) | 
| Высота (см): 9,6 | 
 | 
| 17. Составьте блок-схему и | программу на языке VBA для вычисления | 
стоимости покупки, состоящей из нескольких тетрадей и такого же количества обложек к ним.
| Исходные данные: | Результат: | 
| Цена тетради (руб.): 270 | Стоимость покупки: 6 370 (руб.) | 
| Цена обложки (руб.): 220 | 
 | 
| Количество комплектов (шт.): 13 | 
 | 
| 18. Составьте блок-схему и программу на языке VBA для вычисления | |
| произведения 3-х вещественных чисел. | 
 | 
| Исходные данные: | Результат: | 
| Первое число: 17,5 | Произведение чисел: 5 059,6875 | 
| Второе число: 12,5 | 
 | 
| Третье число: 23,13 | 
 | 
19. Составьте блок-схему и программу на языке VBA для вычисления площади треугольника, если известны длины двух его сторон и величина угла между этими сторонами.
| Исходные данные: | Результат: | 
| Длина первой стороны (см): 25 | Площадь треугольника: 106,25 (кв. см) | 
| Длина второй стороны (см): 17 | 
 | 
Угол между сторонами треугольника (градусы): 30
20. Составьте блок-схему и программу на языке VBA для пересчета веса из фунтов в килограммы(1 фунт равняется 409,5 г.).
| Исходные данные: | Результат: | 
| Фунт(а/ов): 3,5 | Килограмм(а/ов): 1,433 | 
21. Составьте блок-схему и программу на языке VBA для вычисления длины диагонали прямоугольника.
| Исходные данные: | Результат: | 
| Длина (см): 5,4 | Диагональ: 6,3285 (см) | 
| Ширина (см): 3,3 | 
 | 
| 22. Составьте блок-схему и | программу на языке VBA для пересчета | 
9
величины временного интервала, заданного в минутах, в величину, выраженную в часах и минутах.
| Исходные данные: | Результат: | 
| Минуты: 150 | Часы и минуты: 2 ч 30 мин | 
23. Составьте блок-схему и программу на языке VBA для вычисления
| значения функции y(x) = x + | sin2 | (x) | . | 
| 2 | 
 | ||
| Исходные данные: | 
 | Результат: | |
| 
 | 
 | ||
| x = 2,5 | 
 | 
 | y(x) = 2,67908445 | 
24. Составьте блок-схему и программу на языке VBA для вычисления площади поверхности цилиндра.
| Исходные данные: | Результат: | 
| Радиус основания (см): 5,5 | Площадь поверхности цилиндра: 431,97 (кв. см) | 
| Высота цилиндра (см): 7 | 
 | 
25. Составьте блок-схему и программу на языке VBA, которая преобразует введенное с клавиатуры целое неотрицательное число в денежный формат.
| Исходные данные: | Результат: | 
| Число: 124680 | 124 тысяч(а/и) 680 руб. | 
26. Составьте блок-схему и программу на языке VBA для вычисления среднего арифметического 3-х чисел.
| Исходные данные: | Результат: | 
| Первое число: 7,5 | Среднее арифметическое: 4,333333333333 | 
| Второе число: 2,5 | 
 | 
| Третье число: 3 | 
 | 
27. Составьте блок-схему и программу на языке VBA для вычисления длинны вектора по его координатам.
| Исходные данные: | Результат: | 
| x1 = 2 | Длина вектора: 5,09901951359 | 
y1 = 2,4 x2 = 5,4 y2 = 6,2
28. Составьте блок-схему и программу на языке VBA для вычисления площади прямоугольного треугольника, если известны катет и гипотенуза.
| Исходные данные: | Результат: | 
| Катет (см): 12,3 | Площадь треугольника: 79,978 (кв. см) | 
| Гипотенуза (см): 17,9 | 
 | 
29. Составьте блок-схему и программу на языке VBA для вычисления значения функции z(x) = x + ex−1x2 + 3 .
| Исходные данные: | Результат: | 
| x = −2,6 | z(x) = 0,58470836374 | 
30. Составьте блок-схему и программу на языке VBA для вычисления площади полной поверхности куба, если известна его ребро.
| Исходные данные: | Результат: | 
| Ребро (дм): 1,7 | Площадь полной поверхности: 17,34 (кв. дм) | 
10
