Создание функций пользователя



Задание 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!