Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Маркина М.В.doc
Скачиваний:
4
Добавлен:
12.11.2019
Размер:
564.74 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Нижегородский государственный университет им. Н.И. Лобачевского»

Механико-математический факультет

Кафедра теоретической механики

Маркина М.В.

ПРАКТИЧЕСКИЕ ЗАДАНИЯ ПО КУРСУ

«ПРОГРАММИРОВАНИЕ В СРЕДЕ

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

  1. Тема: Основы программирования на vba. Создание пользовательских функций

Краткая информация:

VBA предоставляет возможность пользователю создавать собственные функции, работать с которыми на рабочем листе можно при помощи мастера функций точно так же, как и с любой встроенной функцией. Для создания такой функции необходимо воспользоваться командами Excel Сервис/ Макрос/ Редактор Visual Basic и командами редактора Вставка/ Модуль. Программа на VBA должна быть оформлена в виде подпрограммы Function. Вызов собственной пользовательской функции осуществляется командами Вставка/ Функция, а затем выбором категории Функции определенные пользователем.

Пример создания пользовательской функции.

Для привлечения покупателей в издательстве введена прогрессивная шкала цен. Если продаётся от 100 до 200 экземпляров книги, то скидка от её отпускной цены составляет 7%, если продаётся от 201 до 300 экземпляров, то 10%, если > 300 экземпляров, то > 15%. Кроме того, для постоянных клиентов скидка 5%.

Напишем функцию, которая определяет стоимость покупки.

  1. Выполним команду Сервис, Макрос, Visual Basic.

  2. Выполним команду Вставка, Модуль.

  3. В окне редактора наберём следующий текст.

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

Перевести произвольное двоичное целое число в шестнадцатеричную систему.

  1. Тема: Работа со встроенными диалоговыми окнами. Стандартные функции 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 со всеми символами нижнего регистра, преобразованными в символы верхнего регистра