- •Тема: Основы программирования на vba. Создание пользовательских функций
- •Варианты практического задания №1
- •Тема: Работа со встроенными диалоговыми окнами. Стандартные функции vba
- •Варианты практического задания №2
- •Варианты практического задания №3
- •Тема: Создание приложений с помощью MacroRecorder
- •Варианты практического задания №4
- •Тема: Элементы управления и пользовательская форма
- •Варианты практического задания № 5
- •Тема: Связь полей диалоговых окон с ячейками рабочего листа Excel
- •Варианты практического задания №6 (зачетное задание)
- •Пример выполнения зачетного задания (Вариант 6)
- •Литература
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Нижегородский государственный университет им. Н.И. Лобачевского»
Механико-математический факультет
Кафедра теоретической механики
Маркина М.В.
ПРАКТИЧЕСКИЕ ЗАДАНИЯ ПО КУРСУ
«ПРОГРАММИРОВАНИЕ В СРЕДЕ
MICROSOFT OFFIСE»
(для студентов специальности 080500 «бизнес-информатика»)
(учебно-методическая разработка)
Нижний Новгород 2012
УДК 681.3.06
ББК 32.973-018я7
Маркина М.В. Практические задания по курсу «Программирование в среде Microsoft Office» / учебно-методическое - Н.Новгород: ННГУ, 2012. 20 с.
Учебно-методическая разработка содержит практические задания по составлению и разработке приложений с помощью языка Visual Basic for Applications.
Учебно-методическая разработка предназначена для студентов механико-математического факультета, обучающихся по специальности 080500 «Бизнес-информатика.
Составитель: доцент М.В. Маркина,
Рецензент доцент Сабаева Т.А.
СОДЕРЖАНИЕ
Тема: Основы программирования на VBA. Создание пользовательских функций
Варианты практического задания №1
Тема: Работа со встроенными диалоговыми окнами. Стандартные функции VBA
Варианты практического задания №2
Варианты практического задания №3
Тема: Создание приложений с помощью MacroRecorder
Варианты практического задания №4
Тема: Элементы управления и пользовательская форма
Варианты практического задания № 5
Тема: Связь полей диалоговых окон с ячейками рабочего листа Excel
Варианты практического задания №6
Пример зачетного задания .xls
Тема: Основы программирования на vba. Создание пользовательских функций
Краткая информация:
VBA предоставляет возможность пользователю создавать собственные функции, работать с которыми на рабочем листе можно при помощи мастера функций точно так же, как и с любой встроенной функцией. Для создания такой функции необходимо воспользоваться командами Excel Сервис/ Макрос/ Редактор Visual Basic и командами редактора Вставка/ Модуль. Программа на VBA должна быть оформлена в виде подпрограммы Function. Вызов собственной пользовательской функции осуществляется командами Вставка/ Функция, а затем выбором категории Функции определенные пользователем.
Пример создания пользовательской функции.
Для привлечения покупателей в издательстве введена прогрессивная шкала цен. Если продаётся от 100 до 200 экземпляров книги, то скидка от её отпускной цены составляет 7%, если продаётся от 201 до 300 экземпляров, то 10%, если > 300 экземпляров, то > 15%. Кроме того, для постоянных клиентов скидка 5%.
Напишем функцию, которая определяет стоимость покупки.
Выполним команду Сервис, Макрос, Visual Basic.
Выполним команду Вставка, Модуль.
В окне редактора наберём следующий текст.
Function Стоимость (ЦенаОднойКниги, Количество, Скидка)
If количество <100 Then
СтоимостьБезСкидки = ЦенаОднойКниги*Количество
ElseIf Количество <=200 Then
СтоимостьБезСкидки = ЦенаОднойКниги*Количество*0.93
ElseIf Количество <=300 Then
СтоимостьБезСкидки = ЦенаОднойКниги*Количество*0.9
Else
СтоимостьБезСкидки = ЦенаОднойКниги*Количество*0.85
End If
If Скидка = 0 Then
Стоимость = СтоимостьБезСкидки
Else
Стоимость = СтоимостьБезСкидки*0.95
End If
End Function
Данная функция будет включена в категорию функций, определённых пользователем.
Варианты практического задания №1
Вариант 1
Найти наименьшее общее кратное двух натуральных чисел.
Вариант 2
Найти наибольший общий делитель двух натуральных чисел.
Вариант 3
Определить количество цифр в натуральном числе.
Вариант 4
Найти сумму цифр натурального числа.
Вариант 5.
Перевести заданное в двоичной системе счисление число в восьмеричную систему .
Вариант 6.
Даны три числа. Определить, можно ли построить треугольник с длинами сторон равными этим числам.
Вариант 7
Для произвольных коэффициентов квадратного уравнения определить количество корней этого уравнения
Вариант 8
Определить, равна ли сумма двух первых цифр заданного четырехзначного числа сумме двух его последних цифр.
Вариант 9
Определить, есть ли среди цифр заданного пятизначного числа одинаковые.
Вариант 10
Перевести произвольное двоичное целое число в шестнадцатеричную систему.
Тема: Работа со встроенными диалоговыми окнами. Стандартные функции vba
Краткая информация:
Встроенные окна. Функция InputBox – выводит на экран диалоговое окно, содержащее сообщение и поле ввода, устанавливает режим ожидания ввода текста пользователя или нажатия кнопки, а затем возвращает значение типа String, содержащее текст, введённый в поле.
Синтаксис.
InputBox (prompt [, title] [, default] [, xpos] [, ypos] [, helpfile, context])
Аргументы:
prompt – строковое выражение, отображаемое как сообщение в диалоговом окне. Может содержать несколько строк. Для разделения строк допускается использование символа возврата каретки Chr (13), перевода строки Chr (10), или комбинацию (Chr(13))&Chr(10)).
Title – строковое выражение, отображаемое в строке заголовка диалогового окна.
Default – строка, которая отображается в поле ввода перед вводом текста пользователем. Если аргумент опущен – она чистая.
Xpos – числовое выражение, задающее расстояние по горизонтали между левой границей диалогового окна и левым краем экрана.
Если этот аргумент опущен – выравнивание по центру экрана по горизонтали.
Ypos - числовое выражение, задающее расстояние по вертикали между верхней границей диалогового окна и верхним краем экрана. Если этот аргумент опущен, диалоговое окно помещено на 1/3 высоты экрана.
Helpfile – стринговое выражение, определяющее имя, файл справки, содержащий справочные сведения о данном диалоговом окне.
Context – номер раздела справочной системы.
Процедура MsgBox – выводит на экран диалоговое окно, содержащее сообщение, устанавливает режим ожидания нажатия кнопки пользователем, а затем возвращает значение типа Integer, указывающее, какая кнопка была нажата.
MsgBox (prompt [, buttons] [, title] [, helpfile, context])
Buttons – числовое выражение, представляющее сумму значений, которые указывают число и тип отображаемых кнопок, тип используемого значка, основную кнопку и модальность окна сообщения (по умолчанию =0).
Значение аргумента buttons, определяющее отображаемые кнопки в диалоговом окне.
-
Константа
Значение
Отображения кнопки
VbOKOnly
0
ОК
VbOKCancel
1
ОК Отмена
VbAbortRetryIgnore
2
Стоп Повтор Пропустить
VbYesNoCancel
3
Да Нет Отмена
VbYesNo
4
Да Нет
VbRetryCancel
5
Повтор Отмена
Значения аргумента buttons, определяющие отображаемые информационные значки
VbCritical |
16 |
X |
VbQuestion |
32 |
? |
VbExclamination |
48 |
! |
VbInformation |
64 |
i |
Значения аргумента buttons, определяющие основную кнопку в диалоговом окне
Константа |
|
Номер основной кнопки |
VbDefaultButton1 |
0 |
1 |
VbDefaultButton2 |
256 |
2 |
VbDefaultButton3 |
512 |
3 |
Значение возвращаемого целого значения процедуры MsgBox() в зависимости, от того какая кнопка была нажата
-
Константа
Нажата кнопка
VbOK
1
ОК
VbCancel
2
Отмена
VbAbort
3
Прервать
VbRetry
4
Повторить
VbIgnore
5
Пропустить
VbYes
6
Да
VbNo
7
Нет
По теме 2 необходимо выполнить практическое задание № 2 и практическое задание № 3. Практическое задание №2 посвящено использованию функций работы со строками
Стандартные функции обработки строк
N - любое допустимое численное значение; S - любое допустимое строковое значение. Аргументы каждой функции являются обязательными, если не указано иначе.
Функция(аргумент) |
Действие |
InStr(N1,S1,S2,N2) |
Возвращает положение S2 в S1. N1 - начальное положение для поиска. N2 определяет, следует ли выполнять поиск с учетом регистра. N1, N2 - необязательные аргументы |
Lcase(S) |
Возвращает строку (тип String), содержащую копию S со всеми символами верхнего регистра, преобразованными в символы нижнего регистра |
Left(S,N) |
Возвращает строку: копирует N символов из S, начиная с левого крайнего символа S |
Len(S) |
Возвращает число символов в S, включая начальные и конечные пробелы |
Ltrim(S) |
Возвращает копию строки S после удаления символов пробела из левой части строки (начальные пробелы) |
Mid(S,N1,N2) |
Возвращает строку: копирует N2 символов из S, начиная с позиции символа в S, заданной аргументом N1. N2 - необязательный аргумент, если он опущен, то возвращаются все символы в строке S от позиции N1 до конца строки |
Right(S,N) |
Возвращает значение типа String: копирует N символов из S, начиная с правого крайнего символа S |
Rtrim(S) |
Возвращает копию строки S после удаления символов пробела из правой части строки (конечные пробелы) |
Space(N) |
Возвращает строку пробелов длиной N символов |
StrComp(S1,S2,N) |
Сравнивает S1 с S2 и возвращает число, обозначающее результат сравнения: -1, если S1<S2; 0 - S1=S2; 1 - S1>S2. N является необязательным аргументом и указывает следует ли выполнять сравнение с учетом регистра |
String(N,S) |
Возвращает строку длиной N символов, состоящую из символа, заданного первым символом в S |
Trim(S) |
Возвращает копию строки S после удаления начальных и конечных символов пробела из этой строки |
Ucase(S) |
Возвращает S со всеми символами нижнего регистра, преобразованными в символы верхнего регистра |