Файл: Лабораторная работа 3 по дисциплине Информационные технологии "Подбор параметра. Поиск решения. Макросы".docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 26.10.2023

Просмотров: 634

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
В упражнениях, предлагаемых для выполнения, требуется минимальное знание основ программирования, например, знание таких тем, как:

  • Оператор ветвления If…THEN…ELSE.

  • Операторы цикла FOR…NEXT, DO…LOOP.

  • Диалоговые окна MSGBOX…

  • Оператор объявления типов данных DIM…

  • Функция нахождения остатка от деления a MOD b.

  • Функция, возвращающая случайное число в заданных пределах RND.
Макросы, создаваемые с помощью макрорекордераУпражнение 6. «День рождения» Задание. Создать макрос, который фильтрует список сотрудников (табл. 24) и отбирает всех, у кого день рождения в этом месяце. Затем копирует результат фильтрации и размещает на другом листе. Примечание. Так как в упражнении используется связь с системной датой компьютера, результаты приведены по состоянию на 15 апреля 2006 г. При выполнении упражнения в другом месяце результаты фильтрации будут другие.Таблица 24




A

B

C

D

E

F

1

Список
















2

пп

Фамилия

Дата рождения

Возраст

Месяц рождения

День рождения в этом месяце

3

1

Абрамов

12 Декабрь, 1950

55

12,00

 

4

2

Иванов

20 Апрель, 1989

16

4,00

!!

5

3

Петров

11 Ноябрь, 1970

35

11,00

 

6

4

Николаева

12 Март, 1978

28

3,00

 

7

5

Гиясова

1 Апрель, 1910

96

1,00

!! 

8

6

Гончаренко

12 Февраль, 1915

91

2,00

 

9

7

Грицай

12 Июнь, 1977

28

6,00

 

10

8

Дудина

3 Март, 1999

07

3,00

 

11

9

Зеров

9 Сентябрь, 1980

25

9,00

 

Порядок выполнения.

  1. Создать шапку таблицы и внести первичные данные – столбцы «№пп», «Фамилия» и «Дата рождения». Дату нужно вносить числами в формате дд.мм.гггг, а затем форматировать через ФОРМАТ – ЯЧЕЙКИ... (см. лабораторную работу 2).

  2. Возраст с учётом даты создаётся выражением СЕГОДНЯ()-С3 с последующим заданием дополнительного формата числа «ГГ» (см. лабораторную работу 2).

  3. Месяц подсчитать выражением МЕСЯЦ(С3) с помощью мастера функций.

  4. В столбце «День рождения в этом месяце» нужно применить оператор мастера функции категории ЛОГИЧЕСКИЕ «ЕСЛИ» (рис. 62).
Рис.62.Запись “”(две кавычки подряд) в синтаксисе Visual Basic означает пустую строку.

  1. Дать имя листу «Список». Создать новый лист. Назвать его «Дни рождения текущего месяца».

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

  1. на листе «Список» выделить область заголовков А2:F2.

  2. выбрать пункт меню ДАННЫЕ –ФИЛЬТР АВТОФИЛЬТР. В результате в каждом заголовке появится разворачивающийся список.

  3. развернуть список критериев для столбца F и выбрать «!!». В результате создастся список из двух сотрудников –Иванова и Гиясовой.

  4. выделить новую таблицу , скопировать её . Так как в общем случае неизвестно, сколько строк будет содержать таблица, выделять лучше столбцы А:F.

  5. активизировать лист «Дни рождения текущего месяца». Установить курсор в ячейке А1 и дать команду ПРАВКА – ВСТАВИТЬ.

  6. в ячейку А1 внести текст : Дни рождения в этом месяце.

  7. активизировать лист «Список». Завершить режим фильтрации, дать команду ДАННЫЕ – ФИЛЬТР – АВТОФИЛЬТР.

  8. активизировать лист «Дни рождения текущего месяца». В ячейку G1 внести текст : «Чтобы обновить , наберите CTRL+d».

  1. Чтобы не выполнять эту процедуру многократно вручную, можно записать все действия и в последующем вызывать их сочетанием клавиш, например, CTRL+d. Перед записью нужно построить четкий алгоритм действий, лучше записать его, чтобы не сбиваться во время действия макрорекордера. В данном упражнении нужно выполнить следующую последовательность действий.

  1. сделать активным лист «Список».

  2. вызвать макрорекордер через пункт меню Сервис –макрос- начать запись.

  3. дать имя макросу «День_рождения». Задать сочетание клавиш CTRL+d.

  4. с помощью макрорекордера записать следующие действия:


        1. Активизировать лист «Дни рождения».

        2. На листе «Дни рождения» выделить столбцы A:F и удалить их содержимое (нажать Delete).

        3. Перейти на лист «Список», выделить область заголовков А2:F2.

        4. Выбрать пункт меню Данные- фильтр- автофильтр.

        5. Развернуть список критериев в столбце «Дни рождения в этом месяце» и выбрать критерий «!!».

        6. На листе «Список» выделить столбцы А:F и дать команду «копировать».

        7. Перейти на лист «Дни рождения», установить курсор в ячейку А1 и дать команду «Вставить»

        8. В ячейку А1 внести текст «Дни рождения в этом месяце»

        9. Перейти на лист «Список», восстановить таблицу- выбрать пункт меню ДАННЫЕ-ФИЛЬТР-АВТОФИЛЬТР.

        10. Сделать активным лист «Дни рождения».

        11. Остановить запись.

  1. Можно убедиться, что создался текст макроса, если выбрать пункт меню СЕРВИС- МАКРОС – МАКРОСЫ, указать на макрос «День_рождения» и щёлкнуть по кнопке Изменить. Текст макроса будет следующим:
Sub День_рождения()' Сочетание клавиш: Ctrl+dSheets("Дни рождения").SelectColumns("A:F").SelectSelection.ClearContentsSheets("Список").SelectRange("A2:F2").SelectSelection.AutoFilterSelection.AutoFilter Field:=6, Criteria1:="!!"Columns("A:F").SelectSelection.CopySheets("Дни рождения").SelectRange("A1").SelectActiveSheet.PasteColumns("D:D").ColumnWidth = 14.14Columns("C:C").ColumnWidth = 14.71Columns("C:C").ColumnWidth = 16.71Range("A1").SelectApplication.CutCopyMode = FalseActiveCell.FormulaR1C1 = "Дни рождения в этом месяце"Sheets("Список").SelectSelection.AutoFilterRange("A2").SelectSheets("Дни рождения").SelectEnd Sub Закрыть Visual Basic .

  1. Проверить работу макроса. Изменить базу данных –сделать день рождения Дудиной тоже в апреле. Запустить макрос и убедиться, что список на листе «Дни рождения текущего месяца» обновился.

  2. Текст макроса привести в отчете в виде скрина.
Макросы в диаграммахУпражнение 7. «Анализ функции» Задание. Построить график квадратичной функции.Разместить на листе линейки прокрутки, управляющие значениями коэффициентов а, в, с.Порядок выполнения.

  1. В ячейку А1 внести заголовок: Таблица значений функции у=aх2+bх+с.

  2. В ячейку А3 внести имя аргумента: х.

  3. В А4 имя функции: у.

  4. В В23 внести имя коэффициента : а.

  5. В О23 значение коэффициента а : -4.

  6. В В25 имя коэффициента - в, а в ячейку О25 его значение -70.

  7. В В27 имя коэффициента - с, а в ячейку О27 его значение -662.

  8. Заполнить В3:N3 значениями аргумента от -12 до 12 шагом 2.

  9. Заполнить В4:N4 значениями функции и построить график (коэффициенты a, b, c назначаем из ячеек О23, О25, О27, соответственно) (как в лр.1, "Точечная").

  10. Вызвать панель управления Visual Basic (Вид- панели инструментов – Панель управления). Задать режим конструктора, щёлкнув по треугольнику на панели управления.

  11. Из набора инструментов панели управления выбрать «полосу прокрутки» и растянуть прямоугольник в области С23:N23. Не снимая выделения с появившейся полосы прокрутки, щёлкнуть по кнопке «свойства» панели управления и настроить свойства нового объекта:

Полоса прокрутки для аName-Scra MIN- -10 MAX- 10 Value - -4

  1. Аналогично разместить ещё две полосы прокрутки, настроив их следующим образом:
Полоса прокрутки для bName – Scrb MIN- -100 MAX- 100 Value- -70Полоса прокрутки для сName- Scrc MIN—1000 MAX- 1000 Value- -662 В результате на листе будут размещены объекты как на рис. 65.Рис. 65

  1. Просмотр кода.
Вызвать Scra. При этом откроется процедура обработки события изменения положения бегунка полосы прокрутки коэффициента «а» Scra_Change. Внести следующий код, связывающий значение в ячейке O23 и положение бегунка.Private Sub scra_Change()Range("O23").Value = scra.ValueEnd Sub

  1. Повторить этот код в процедуре Scroll.
Это рекомендуется делать для того, чтобы значения в ячейке O23 менялись не рывком, а плавно.Private Sub scra_Scroll()Range("O23").Value = scra.ValueEnd Sub

  1. Повторить эти действия для двух других линеек прокрутки.
Private Sub scrb_Change()Range("O25").Value = scrb.ValueEnd SubPrivate Sub scrb_Scroll()Range("O25").Value = scrb.ValueEnd SubPrivate Sub scrc_Change()Range("O27").Value = scrc.ValueEnd SubPrivate Sub scrc_Scroll()Range("O27").Value = scrc.ValueEnd Sub

  1. Закончить режим конструктора, щёлкнув по треугольнику на панели управления, изменить положение бегунков и убедиться, что связь линеек с функцией работает. При изменении положения бегунка «а» график изменяет направление ветвей, при изменении положения бегунка «в» график перемещается по горизонтали, при изменении «с» график перемещается по вертикали.
Литература

  1. Пастко В., Microsoft Office для пользователей. Киев,BHV, 1998.

  2. Иванов В, Microsoft Office System 2003. Питер, BHV, 2004.

  3. Зеньковский В., Excel в экономических и инженерных расчётах. Москва: Солон- Пресс, 2004.

  4. Столяров А., Шпаргалка по Excel. Москва: Вербо, 1997.

  5. Морозов В., Практикум по компьютерным технологиям. Москва: ABF, 1996.

  6. Шафрин Ю., Основы компьютерных технологий. Москва: ABF, 1996г.

  7. Кузьменко В, VBA 2000. Москва: Бином, 2000.

  8. Эйткен П., Разработка приложений на VBA в среде Office XP. Москва: РН PTR, 2003.

  9. Гарнаев А, VBA- самоучитель. Санкт- Петербург: БХВ-Петербург, 2004г.

  10. Гарнаев А, VBA. Наиболее полное руководство. Санкт – Петербург: БХВ – Петербург,2005.