Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №9

.pdf
Скачиваний:
36
Добавлен:
27.05.2015
Размер:
199.6 Кб
Скачать

Лабораторный практикум по «Информатике». Разработчик: Аткина В.С.

Лабораторная работа №9 Тема: Макросы в MS Excel

Цель: Изучить основные приемы работы с макросами в MS Exel.

Лабораторная работа направлена на освоение следующих компетенций:

ОК-9 - способность к логически-правильному мышлению, обобщению, анализу, критическому осмыслению информации, систематизации, прогнозированию, постановке исследовательских задач и выбору путей их решения на основании принципов научного познания

ПК-1 способность выявлять естественнонаучную сущность проблем, возникающих в ходе профессиональной деятельности, и применять соответствующий физико-математический аппарат для их формализации, анализа и выработки решения.

I.Теоретическая часть

1.1.Особенности назначения макросов в Exel.

Принципы использования макросов в Exel во многом эквивалентны, рассмотренным в лабораторной работе №5. Макросы в MS Word. Ключевая особенность, которая отличает назначение макросов в Exel, это возможность их использования при создании пользовательских функций. Будучи расчётной таблицей, Exel предлагает пользователю некоторый набор функций позволяющих автоматизировать процесс вычислений. Но время от времени, возникают задачи, не предусмотренные средой напрямую. Для решения этих задач разумно задействовать механизм макросов.

1.2. Создание пользовательских функций

Для примера рассмотрим процесс написание простой функции, которая принимает в себя содержимое двух ячеек таблицы и перемножает их.

Лабораторный практикум по «Информатике». Разработчик: Аткина В.С.

X(A1;A2)=A1*A2

1.Запустите Exel.

2.Откройте вкладку Разработчик и в группе «Код» выберите пункт

Visual Basic.

3.Поместите курсор в поле ввода макроса и введите следующий код:

Public Function MyFunction(x, y)

MyFunction = x*y

End Function

MyFunction – это имя тестового макроса, присваивая значение переменной с данным именем, мы определяем, что вернёт функция после выполнения, в данном случае MyFunction возвращает результат перемножения двух входных чисел.

Function и End Function соответственно начало и конец макроса. Код между MyFunction(x, y) и Function то что будет выполнять макрос.

1.Сохраните пользовательскую функцию.

2.Проверьте её работоспособность, записав в любую клетку таблицы следующее выражение:

=MyFunction(3;5)

Если функция записана правильно, то в ячейке содержащей это выражение появится число 15. Повторите проверку, но замените числа на имена ячеек содержащих числа, например: =MyFunction(A1;A2)

3. Поздравляю. Ваша первая пользовательская функция готова.

Следует отметить, что для реализации пользовательских функций, возможностей макрорекодера будет не хватать. Знание основ написания VBА скриптов необходим для выполнения.

Лабораторный практикум по «Информатике». Разработчик: Аткина В.С.

1.3. Использование элементов управления

Microsoft Excel дает возможность добавления в книгу кнопок, переключателей, флажков и других элементов управления. Элементы управления позволяют предложить пользователю выбор параметров или дать возможность запуска макросов для автоматизации задач. Кнопке можно поставить в соответствие существующий макрос или с помощью флажков или переключателей вывести данные в виде списка или изменить данные на листе.

Для создания элементов управления используется панели инструментов «Формы» и «Элементы управления».

1.Откройте лист, на который нужно добавить элементы управления.

2.Используя команды на вкладке «Разработчик» или раздела «Макросы» вкладки «Вид»., выведите на экран панель инструментов «Формы» или «Элементы управления».

3.На этой панели инструментов выберите нужный элемент управления.

4.На листе щелкните мышкой в нужном месте и с помощью мыши придайте элементу управления нужный размер.

5.При добавлении кнопки после ее нажатия выберите нужный макрос

вполе «Имя макроса». При добавлении другого элемента управления щелкните его правой кнопкой мыши и выберите команду «Назначить макрос» в контекстном меню. Если макрос не существует, можно записать или написать новый.

II.Практические задания:

1.В своей индивидуальной папке на сервере создайте рабочую книгу Excel и сохраните ее под именем лабораторная_р9_Фамилия рабочую книгу MS Excel.

Лабораторный практикум по «Информатике». Разработчик: Аткина В.С.

2.Выполните пример по работе с макросом из теоретической части лабораторной работы. Объясните принцип работы, проанализируйте результаты. Запишите данное задание и выводы по результату его выполнения в тетрадь по лабораторному практикуму.

3.Выполните индивидуальные задания в соответствии с полученным у преподавателя вариантом.

III. Варианты

Вариант №1

Напишите пользовательскую функцию, вычисляющую значение интеграла по методу трапеций от дискретной функции, представленной столбцом значений:

F(x) x

10,1

20,2

30,6

10,7

20,8

50,13

60,5

10,8

1.Напишите функцию Integral в редакторе VBA

2.Проверьте его работоспособность функции вызвав её в ячейке таблицы. (=Integral(A2:A8; B2:B8)).

3.Максимально упростите код пользовательской функции. Снабдите каждую строчку кода комментарием объясняющим её смысл.

4.Запишите полученный программный код в лабораторную тетрадь.

Вариант №2

Напишите функцию считающую определитель квадратной матрицы произвольной размерности.

1

32

2

3

35

5

2

5

2

1. Напишите функцию Determenant в редакторе VBA

Лабораторный практикум по «Информатике». Разработчик: Аткина В.С.

2.Проверьте его работоспособность функции вызвав её в ячейке таблицы. (=Determenant (A1:C3)).

3.Максимально упростите код пользовательской функции. Снабдите каждую строчку кода комментарием объясняющим её смысл.

4.Запишите полученный программный код в лабораторную тетрадь.

Вариант №3

Напишите пользовательскую функцию, вычисляющую факториал от строки значений.

1.Напишите функцию Factorial в редакторе VBA

2.Проверьте его работоспособность функции вызвав её в ячейке таблицы. (=Factorial(A1:C3)).

3.Максимально упростите код пользовательской функции. Снабдите каждую строчку кода комментарием объясняющим её смысл.

4.Запишите полученный программный код в лабораторную тетрадь.

Вариант №4

Напишите пользовательскую функцию f[x]=f[x]+(f[x]+1), при учёте, что f[0]

=0, а x >=0

1.Напишите функцию recurs в редакторе VBA

2.Проверьте его работоспособность функции вызвав её в ячейке таблицы. (=recurs (A1)).

3.Максимально упростите код пользовательской функции. Снабдите каждую строчку кода комментарием объясняющим её смысл.

4.Запишите полученный программный код в лабораторную тетрадь.

Вариант №5

Реализуйте функцию вычисляющий модуль комплексного числа, считая что действительная и мнимая часть этого числа записана раздельно в некоторых ячейках таблицы.

1.Напишите функцию recurs в редакторе VBA

2.Проверьте его работоспособность функции вызвав её в ячейке таблицы. (=modk (A1)).

3.Максимально упростите код пользовательской функции. Снабдите каждую строчку кода комментарием объясняющим её смысл.

4.Запишите полученный программный код в лабораторную тетрадь.

Вариант №6

Реализуйте функцию вычисляющий аргумент комплексного числа, считая что действительная и мнимая часть этого числа записана раздельно в некоторых ячейках таблицы.

Лабораторный практикум по «Информатике». Разработчик: Аткина В.С.

1.Напишите функцию recurs в редакторе VBA

2.Проверьте его работоспособность функции вызвав её в ячейке таблицы. (=argk(A1)).

3.Максимально упростите код пользовательской функции. Снабдите каждую строчку кода комментарием объясняющим её смысл.

4.Запишите полученный программный код в лабораторную тетрадь.

Вариант №7

Напишите пользовательскую функцию, вычисляющую значение суммы векторов x и z выводящую результат сложения в виде суммы прописью

z x

10,1

20,2

30,6

10,7

20,8

50,13

60,5

10,8

1.Напишите функцию СуммаПрописью в редакторе VBA

2.Проверьте его работоспособность функции вызвав её в ячейке таблицы.

3.Максимально упростите код пользовательской функции. Снабдите каждую строчку кода комментарием объясняющим её смысл.

4.Запишите полученный программный код в лабораторную тетрадь.

Вариант №8

Напишите пользовательскую функцию, возвращающей результат сложения всех нечётные чисел прописанных во входном векторе функции.

1.Напишите функцию chetniysum в редакторе VBA

2.Проверьте его работоспособность функции вызвав её в ячейке таблицы. (=chetniysum (A2:A8)).

3.Максимально упростите код пользовательской функции. Снабдите каждую строчку кода комментарием объясняющим её смысл.

4.Запишите полученный программный код в лабораторную тетрадь.

Вариант №9

Лабораторный практикум по «Информатике». Разработчик: Аткина В.С.

Напишите пользовательскую функцию, возвращающей результат умножения всех чётных чисел прописанных во входном векторе функции.

1.Напишите функцию chetniysum в редакторе VBA

2.Проверьте его работоспособность функции вызвав её в ячейке таблицы. (=chetniysum (A2:A8)).

3.Максимально упростите код пользовательской функции. Снабдите каждую строчку кода комментарием объясняющим её смысл.

4.Запишите полученный программный код в лабораторную тетрадь.

Вариант №10

Напишите пользовательскую функцию, возвращающую вместо числа от 0 до 9, его словесный аналог (ноль, один и.т.д), а для всех остальных чисел, возвращающий словесный аналог результата остатка от деления словесного аналога на девять.

1.Напишите функцию zamena в редакторе VBA

2.Проверьте его работоспособность функции вызвав её в ячейке таблицы. (=zamena (A2)).

3.Максимально упростите код пользовательской функции. Снабдите каждую строчку кода комментарием объясняющим её смысл.

4.Запишите полученный программный код в лабораторную тетрадь.

Вариант №11

Создайте макрос находящий и считающий числа, попадающие в задаваемый диапазон значений [-a; a], создайте элемент управления кнопка на листе1 рабочей книги и настройте запуск данного макроса по кнопке.

Вариант №12

Напишите макрос, вычисляющий среднее значение для заданного вектора - Х и закрашивающего все ячейки с числами больше среднего значения в красный цвет. Предусмотрите запуск макроса по нажатию пользовательской кнопки «Анализ данных»

Х

1

2

3

1

2

5

Лабораторный практикум по «Информатике». Разработчик: Аткина В.С.

6

1

Вариант №13

Напишите макрос создающий новый лист рабочей книги и помещающий его в конец списка листов. Предусмотрите возможность запуска макроса с помощью созданного вами пользовательского элемента управления.

Вариант 14

Напишите макрос создающий таблицу вида поставьте ему в соответствие созданный вами элемент управления.

 

 

 

Название угрозы

 

 

Категория

 

 

Вероятность

 

 

Возможный

 

 

п/п

 

 

 

 

 

 

реализации

 

 

ущерб

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.Откройте редактор VBA

2.Максимально упростите код пользовательской функции. Снабдите каждую строчку кода комментарием объясняющим её смысл.

3.Запишите полученный программный код в лабораторную тетрадь.

IV. Контрольные вопросы

1.Понятие макроса

2.Способы создания макросов

3.Особенности применения макросов в MS Excel

4.Работа с пользовательскими элементами управления.

V. Правила выполнения.

Отчет по выполненной лабораторной работе оформляется письменно в тетради и должен содержать:

1.Номер лабораторной работы.

2.Тему.

3.Цель.

4.Полные ответы на контрольные вопросы.

5.Файл-отчет с результатами выполненных практических заданий.

Лабораторный практикум по «Информатике». Разработчик: Аткина В.С.

Приложение 1 Функции языка VBA

Математические функции

N - означает любое численное выражение. Все аргументы функций являются обязательными, если не указано иначе.

Функция (аргумент)

Abs(N)

Atn(N)

Cos(N)

Exp(N)

Fix(N)

Int(N)

Log(N)

Rnd(N)

Sgn(N)

Sin(N)

Sqr(N)

Tan(N)

Действие

Возвращает абсолютное значение аргумента N

Возвращает арктангенс N (радиан)

Возвращает косинус N (радиан)

Возвращает константу е (натуральный логарифм = 2.718282...), возведенную в степень N

Возвращает целую часть N. Не округляет число, а отбрасывает любую дробную часть. Если N отрицательное число, то возвращается ближайшее отрицательное целое большее, чем или равное N

Возвращает целую часть N. Не округляет число, а отбрасывает любую дробную часть. Если N отрицательное число, то возвращается ближайшее отрицательное целое меньшее, чем или равное N

Возвращает натуральный логарифм N

Возвращает случайное число: аргумент является необязательным. Используется только после инициализации генератора случайных чисел

(оператор Randomize)

Возвращает знак числа: -1, если N - отрицательное; 1, если N - положительное; 0, если N равно 0

Возвращает синус N (радиан)

Возвращает корень квадратный из N. Если N является отрицательным числом - возвращается ошибка времени исполнения

Возвращает тангенс N (радиан)

Функции преобразования данных

N - любое численное значение; S - любое строковое значение; E - выражение любого типа. Аргументы каждой функции являются обязательными, если не указано иначе.

Лабораторный практикум по «Информатике». Разработчик: Аткина В.С.

Функция (аргумент)

Asc(S)

Chr(N)

Format(E,S)

Hex(N)

Oct(N)

RGB(N,N,N)

Str(N)

Val(S)

CBool(N)

CByte(E)

CCur(E)

CDate(E)

CDbl(E)

CInt(E)

CLng(E)

CSng(E)

Действие

Возвращает число кода символа, соответствующее первой букве строки S

Возвращает строку из одного символа, соответствующего коду символа N, который должен быть числом между 0 и 255 (обратна предыдущей)

Возвращает строку, содержащую значение, представленное выражением Е, в формате в соответствии с инструкциями, содержащимся в S

Возвращает строку, содержащую шестнадцатиричное представление N

Возвращает строку, содержащую восьмиричное представление N

Возвращает целое типа Long, представляющее значение основных цветов изображения. N для каждого аргумента должно быть целым и лежать в пределах от 0 до

255

Возвращает строку, эквивалентную численному выражению N

Возвращает численное значение, соответствующее числу, представленному строкой S, которая должна содержать только цифры и одну десятичную точку, иначе возвращается 0

Возвращает Boolean-эквивалент численного выражения N

Возвращает численное значение типа Byte (от 0 до 255). Е - любое допустимое численное или строковое выражение, которое может быть преобразовано в число

Возвращает численное значение типа Currency. Е - любое допустимое численное или строковое выражение, которое может быть преобразовано в число

Возвращает значение типа Date. E может быть любым допустимым выражением (строкой или числом), представляющим дату в диапазоне 1/1/100 - 12/31/9999

Возвращает численное значение типа Double. Е - любое допустимое численное или строковое выражение, которое может быть преобразовано в число

Возвращает численное значение типа Integer. Е - любое допустимое численное или строковое выражение, которое может быть преобразовано в число

Возвращает численное значение типа Long. Е - любое допустимое численное или строковое выражение, которое может быть преобразовано в число

Возвращает численное значение типа Single. Е -