
Сборник задач по 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