Создание функций пользователя
Задание 1. Функция, автоматизирующая расчет времени в пути для самолета
Запустите Excel
Введите таблицу по образцу, предложенному ниже.
A | B | C | D | |
1 | Направление | Время отправления | Время прибытия | Время в пути |
2 | Москва | 10:30 | 11:35 | |
3 | Челябинск | 13:15 | 15:50 | |
4 | Владивосток | 18:00 | 0:10 | |
5 | Мурманск | 23:40 | 1:10 |
Присвойте ячейкам в столбцах B, C, D числовой формат Время
Время в числовом формате— это десятичная дробь в интервале от 0 (нуля) до 0,99999999, представляющая время от 0:00:00 (12:00:00 ночи) до 23:59:59 (11:59:59 вечера).
Введите в столбцы B и C данные - время отправления и время прибытия. Время при этом вводится через двоеточие (часы:минуты:секунды).
Запустите редактор VBA последовательностью команд
СервисèМакросèРедакторèVisual Basic
Выполните команду Вставкаèи создайте новый модуль. Выберите его значок в окне проекта, чтобы активизировать окно редактора для создания собственной функции. В открывшемся окне напишите на VBA программу функции Время_Пути для определения времени полета:
Function Время_пути(Вылет, Прилет)
v = Вылет
p = Прилет
If p > v Then t = p - v Else t = 1 + p - v
Время_пути = t
End Function
Активизируйте лист Excel. В ячейку D2 введите созданную вами функцию, выбрав ее из категории Определенные пользователем. Проверьте работоспособность созданной вами функции.
В результате таблица должна иметь следующий вид:
|
|
A | B | C | D | |
1 | Направление | Время отправления | Время прибытия | Время в пути |
2 | Москва | 10:30 | 11:35 | 1:05:00 |
3 | Челябинск | 13:15 | 15:50 | 2:35:00 |
4 | Владивосток | 18:00 | 0:10 | 6:10:00 |
5 | Мурманск | 23:40 | 1:10 | 1:30:00 |
Задание 2. Функция, автоматизирующая расчет времени в пути для поезда
Запустите Excel. Введите таблицу по образцу, предложенному ниже.
A | B | C | D | E | |
1 | Направление | Время отправления | Время прибытия | Число полных суток | Время в пути |
2 | Москва |
|
|
|
|
3 | Челябинск |
|
|
|
|
4 | Владивосток |
|
|
|
|
5 | Мурманск |
|
|
|
|
Присвойте ячейкам в столбцах B, C числовой формат Время, тип 13:30.
Присвойте ячейкам в столбце E числовой формат Время, тип 37:30:55
Присвойте ячейкам в столбце D – числовой формат Числовой без десятичных знаков.
Время в числовом формате— это десятичная дробь в интервале от 0 (нуля) до 0,99999999, представляющая время от 0:00:00 (12:00:00 ночи) до 23:59:59 (11:59:59 вечера).
Введите в столбцы B и C данные - время отправления, время прибытия. Время при этом вводится через двоеточие (часы:минуты).
Введите в столбец D данные - число полных суток.
|
|
A | B | C | D | E | |
1 | Направление | Время отправления | Время прибытия | Число полных суток | Время в пути |
2 | Москва | 10:30 | 11:35 | 0 |
|
3 | Челябинск | 13:15 | 15:50 | 2 |
|
4 | Владивосток | 18:00 | 0:10 | 5 |
|
5 | Мурманск | 23:40 | 1:10 | 1 |
|
Запустите редактор VBA последовательностью команд
СервисèМакросèРедакторèVisual Basic
Выполните команду Вставкаèи создайте новый модуль. Выберите его значок в окне проекта, чтобы активизировать окно редактора для создания собственной функции. В открывшемся окне напишите на VBA программу функции ПоездВпути для определения времени поезда в пути в часах:
Function ПоездВпути(Отправление, Прибытие, Суток)
v = Отправление
p = Прибытие
s = Суток
If p > v Then t = p - v Else t = 1 + p - v
ПоездВпути = t + s
End Function
Активизируйте лист Excel. В ячейку Е2 введите созданную вами функцию, выбрав ее из категории Определенные пользователем. Проверьте работоспособность созданной вами функции.
В результате таблица должна иметь следующий вид:
A | B | C | D | E | |||
1 | Направление | Время отправления | Время прибытия | Число полных суток | Время в пути | ||
2 | Москва | 10:30 | 11:35 | 0 | 1:05:00 | ||
3 | Челябинск | 13:15
| 15:50 | 2 | 50:35:00 | ||
4 | Владивосток | 18:00 | 0:10 | 5 | 126:10:00 | ||
5 | Мурманск | 23:40 | 1:10 | 1 | 25:30:00 |
Лабораторная работа 6
Создание и использование макросов
Задание 1
1. Запустите Excel
2. Включите режим записи макроса, для чего выберите режим СервисМакросНачать запись.
В открывшемся меню Запись макроса введите имя макроса, например МакросПроверка, и присвойте ему комбинацию клавиш – Ctrl+z.
Нажмите кнопку меню OK и приготовьтесь к началу записи макроса в виде последовательности команд, выполняемых на рабочем листе Excel.
3. Введите в ячейку А1 первого рабочего листа чистой книги слово Проверка. Введите в ячейку А2 число 26 и число 15 в ячейку В2. Остановите запись макроса нажатием кнопки Остановить запись.
4. Очистите область А1:С3 рабочего листа и вызовите на выполнение макрос МакросПроверка с помощью комбинации клавиш Ctrl+z.
5. Ознакомьтесь с набором рабочих окон редактора VBA и с текстом созданной программы, для чего с помощью команд СервисМакросМакросы вызовите макрос МакросПроверка и нажмите кнопку Изменить. Аналогичный результат можно получить, выполняя последовательность команд СервисМакросРедактор Visual Basic.
6. Ознакомьтесь с текстом созданного модуля МакросПроверка. Пример полученного текста представлен ниже.
|
|
Sub МакросПроверка()
'
' МакросПроверка Макрос
' Макрос записан 03.11.2003 (NNNN)
'
' Сочетание клавиш: Ctrl+z
'
Range("A1").Select
ActiveCell.FormulaR1C1 = "Проверка"
Range("A2").Select
ActiveCell.FormulaR1C1 = "26"
Range("B2").Select
ActiveCell.FormulaR1C1 = "15"
Range("C2").Select
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
Range("C3").Select
End Sub
7. Первая строка представляет собой заголовок созданной процедуры МакросПроверка.
Параметры процедуры отсутствуют. Символом обозначен комментарий. Первая рабочая строка программы вызывает объект Аррliсаtiоп (приложение) с методом Run (выполнить), вызывающим на выполнение объект Range (диапазон) с параметрами начальной установки рабочего листа. Далее производится выделение ячейки А1 текущего рабочего листа и запись в активную ячейку в формате R1C1 текста “Проверка”.
Отметим, что в Ехсеl существует два формата (А1 и R1СI) и два способа адресации (относительная и абсолютная) ячеек памяти. В формате А1 признаком абсолютной адресации является символ “$“. В формате RIСI абсолютный адрес задается индекс рабочей строки и столбца, а при необходимости использования относительной адресации в квадратных скобках указывается относительное смещение со знаком по отношению к текущей рабочей ячейке. Последующие действия программы соответствуют выполненной последовательности при программировании макроса. Как следует из текста, константы и формулы заносятся с использованием метода FormulaR1С1 объекта ActiveCell.
9. Модифицируйте созданную программу. Введите в ее текст описание трех дополнительных переменных:
Dim b, c As Integer
Предварительно описав переменную d1 как строку символов, введите в текст программы оператор ввода данных:
Dim d As String
D = InputBox (“Первый сомножитель”, ”Проверка”)
Преобразуйте значение d из символьного вида к числовому с помощью функции:
b = Val(d)
и убедитесь, что содержимое ячейки может быть задано с клавиатуры в диалоговом режиме.
Ниже представлен пример созданной в процессе модернизации макроса программы на языке VВА:
Sub МакросПроверка ()
'
' МакросПроверка Макрос
' Макрос записан 03.11.2003 (APTS)
Dim b, c As Integer
Dim d As String
MsgBox "Умножение", vbOKOnly, “Проверка”
d = InputBox("Первый сомножитель", "Проверка")
b = Val(d)
d = InputBox("Второй сомножитель", "Проверка")
c = Val(d)
Range("A1").Select
ActiveCell.FormulaR1C1 = "Проверка"
Range("A2").Select
ActiveCell.FormulaR1C1 = b
Range("B2").Select
ActiveCell.FormulaR1C1 = c
Range("C2").Select
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
End Sub
Задание 2
Дата добавления: 2018-04-05; просмотров: 88; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!