Варианты заданий для самостоятельной работы ( 1610 )

advertisement
Варианты заданий для самостоятельной работы
по с/к «Офисное программирование»
Лабораторная работа №1. Основы языка VBA
1
задание 1
Написать макрос, который выводил бы на листе рабочей книги Excel таблицу
первых n простых чисел. Таблица должна содержать m столбцов. Числа выводить
построчно, слева-направо, сверху-вниз.
Значения n, m и координаты верхнего-левого угла таблицы ввести с клавиатуры,
используя функцию InputBox.
Для запуска макроса на листе расположить кнопку.
2
задание 2
Заполнить прямоугольную область на листе рабочей книги Excel случайными
действительными числами, равномерно распределенными в диапазоне [A,B].
В построенной таблице числа из первой половины интервала вывести синим
цветом на желтом фоне, числа из второй половины интервала – желтым цветом на
синем фоне.
Координаты начала таблицы, размеры таблицы и границы диапазона вводятся
пользователем (можно при помощи функции InputBox).
Для запуска макроса на листе расположить кнопку.
3
задание 3
После листа "Лист 1" вставить в книгу рабочий лист "Шрифты". На нем, для
каждого из установленных в системе шрифтов вывести:




в столбце А - Порядковый номер шрифта,
в столбце В - Название шрифта,
в столбце С - фразу "Computer IBM" данным шрифтом 12 пт
в столбце D - фразу "Кафедра САЭ" данным шрифтом 12 пт
Для столбцов А-D установить автоматический выбор ширины столбца (если
приложение вылетает с ошибкой – не обязательно).
замечание
Использовать коллекции FontNames, LandscapeFontNames, PortraitFontNames
объекта Word.Application. Не забудьте подключить через меню Сервис / Ссылки
библиотеку Microsoft Word 8.0 Object Library и предварительно запустить MS
Word.
4
задание 4
Простые числа из существующей таблицы, построенной в задании 1, "разнесите"
по различным листам рабочей книги.
Для этого напишите макрос, который бы согласно введенному значению n,
создавал листы с именами "1-99", "100-199", "200-299" и т.д.
На лист "А-В" должны переноситься числа значения которых не меньше А и не
больше В.
Для обхода таблицы используйте цикл For each и алгоритм заполнения таблицы
числами, взятый из Вашего задания 1 этой лабораторной работы.
5
задание 5
Напишите функцию, которая бы для диапазона, передаваемого ей в качестве
параметра, и признака типа результата, находила бы количество



четных чисел, содержащихся в диапазоне, если значение типа
результата = 1
нечетных чисел, если значение типа результата = 2
чисел, состоящих только из нечетных цифр, если значение типа
результата = 3
замечание
Число можно преобразовать в строку при помощи функции CStr
Применять функцию как встроенную стандартную функцию Excel: в ячейку
вставлять формулу вида "=myfunc(1;5;2)". Результат функции будет в ячейке.
6
задание 6
Напишите макрос, который заполнял бы выделенный на рабочем листе диапазон
случайным образом числами, текстовыми данными, формулами, датами. И
позволял бы
1. Раскрасить диапазон соответственно содержимому ячеек.
пример
o
o
o
ячейку с числами – залить красным фоном
ячейку с текстами – залить синим
... и т.д
замечание
Для вывода дат и т.д. необходимо использовать различные
числовые форматы ячеек: 14.3.99, 14 мар 99,
14.03.99 13.30 и т.д.
Для определения типа содержимого ячейки использовать
функции объекта Application для получения сведений о типе
переменной – IsText, IsFormula, IsNumeric, IsData и т.п.
Формулы могут не быть корректными. Формулы можно
составлять из простых операций + - * /, ссылок на ячейки,
чисел.
2. Непосредственно под выделенным диапазоном вывести информацию
о количестве ячеек, содержащих числа, тексты, формулы, даты.
Лабораторная работа №2. Программирование MS
Excel
1
задание 1
Возьмите из директории ./files , где лежат данные файлы лабораторных,
рабочую книгу T1002.xls, которая содержит учебный план специальности Т1002
"Программное обеспечение информационных технологий".
Напишите функцию (см. задание 5 лабораторной работы 1), которая позволяла бы
получать в ячейках V28, X28, V52, X52, V73, X73, V94, X94 количество экзаменов
(зачетов), предусмотренных учебным планом специальности по отдельным блокам
дисциплин, а в ячейках АС103, АС104 общее их количество.
Исходные данные для расчетов (номера семестров, в которых предусмотрен зачет
или экзамен) находятся в столбцах V, X. Данные могут представлять отдельное
значение, диапазон значений, перечисление ("4", "2-5", "6,8", "1,3-5,7-9").
Формат их может быть как числовой, так и текстовый.
Функция должна допускать до 10 необязательных параметров, задающих
диапазоны исходных данных.
замечание
Использование функции позволяет сделать автоматические перерасчеты ячеек при
изменении значений в зависимых ячейках. Нет необходимости использовать
кнопки для ручного вызова необходимых функций.
2
задание 2
Для той же рабочей книги разработайте функцию, которая позволяла бы найти
количество экзаменов и зачетов, приходящихся на отдельный семестр и с ее
помощью рассчитайте значения в ячейках АР103:ВН104.
Исходные данные для расчетов (номера семестров, в которых предусмотрен зачет
или экзамен) находятся в столбцах V, X. Данные могут представлять отдельное
значение, диапазон значений, перечисление ("4", "2-5", "6,8", "1,3-5,7-9").
Формат их может быть как числовой, так и текстовый.
Функция должна допускать до 10 необязательных параметров, задающих
диапазоны исходных данных.
3
задание 3
Для той же рабочей книги разработайте функцию, которая позволяла бы
суммировать данные об учебной нагрузке в неделю (подобные данные можно
найти в диапазоне AP30:BI49).
Исходные данные могут быть числом (целым или действительным), либо
представлять собой 2 числа разделенные "слэшем".
Функция должна допускать до 10 необязательных параметров, задающих
диапазоны исходных данных.
При помощи данной функции произвести вычисления в соответствующих столбцах
строк 28, 52, 73, 94, 102.
4
задание 4
Для той же рабочей книги разработать макрос, позволяющий контролировать
правильность распределения учебных занятий по учебным неделям.
Проверке подлежит разность между общим количество аудиторных часов (ячейка
столбца АС) и сумма произведений значений в столбцах АР-ВН той же строки на
количество учебных недель (строка 23).
Если указанная разность больше 6 (шести) часов – значение в ячейке с общим
количество аудиторных часов должно выделяться красным цветом.
Макрос должен вызываться по нажатию на кнопку "Подсчет", расположенную в
удобном месте либо на отдельной панели инструментов.
5
задание 5
Для той же рабочей книги организовать заполнение ячеек В14:ВА14 при помощи
выпадающего списка. Признак наличия списка (направленный вниз треугольник)
должен появляться при щелчке по ячейке.
Лабораторная работа №3. Пользовательские
интерфейсы
введение
Данная работа ставит своей целью разработку пользовательских интерфейсов на
основе форм. Использование подобных интерфейсов должно облегчить
реализацию задач ввода, корректировки, анализа и обработки информации.
Данная лабораторная работа предполагает создание приложения для работы врача
ХХХ диспансера. Все предлагаемые в ней задания - этапы создания такого
приложения.
1.
задание 1
Загрузите на свой компьютер рабочую книгу медицина.xls и текстовый файл
diagnoz.txt. В данной рабочей книге вы будете разрабатывать свое приложение.
Снабдите ваше приложение начальной и конечной заставкой. Заставка реализуется
в виде формы.
Заставка должна автоматически появляться при запуске приложения и выходе из
него. Для этого поместите код, отображающий форму (методом Show), в
автоматически запускаемые макросы Workbook_Open и Workbook_BeforeClose.
2.
задание 2
Создайте форму, содержащую три информативных объекта ComboBox, ListBox и
cтроку ввода Edit. Данные в комбинированный список загрузите из листа
"Недуги" рабочей книги, в ListBox - из текстового файла. Строка ввода должна
допускать многострочный ввод, список - расширенный выбор. Оба списка должны
формироваться при инициализации формы.
При выборе кнопки "Дальше" должны быть выведены (в любом удобном виде)
названия выбранных недугов. При выборе кнопки "Отказ" - форма должна
выгружаться из памяти.
3.
задание 3
Для той же рабочей книги разработайте форму, позволяющую формировать набор
болезней пациента из предлагаемого на листе "Недуги" списка (столбец "В").
Оба списка должны допускать расширенный выбор. Выбранная информация
должна переноситься между списками по нажатию соответствующей кнопки.
Форма предназначена для заполнения столбца "Диагноз" на листе "Пациенты".
Одновременно, для упрощения компьютерной обработки информации, в столбец
"Кодировка диагноза" должны заноситься коды (из столбца "А" листа "Недуги")
выбранных болезней.
4.
задание 4
В рабочей книге MS Excel требуется хранить данные о ходе обследования больных.
Хранимая информация разнесена на два листа - "Пациенты" и "Назначения". Связь
данных на листах (типа "один ко многим") - через "Уникальный номер".
На листе "Пациенты" хранится
1.
2.
3.
4.
5.
6.
уникальный номер
фамилия, имя, отчество
пол
дата рождения
домашний адрес
диагноз
На листе "Назначения" хранятся
1. уникальный номер
2. дата назначения и данные о назначенных
препаратах :
o препарат №1
o препарат №2
o препарат №3
o препарат №4
o препарат №5
o препарат №6
Разработать макрос, который позволял бы в удобной форме просматривать все
назначения препаратов, сделанные больному в форме многостраничного блокнота.
Макрос вызывается для активной ячейки в листе "Назначения". Информация в
форму выбирается на основании "Уникального номера" из строки, содержащей
активную ячейку. Количество страниц блокнота - согласно реальным данным.
Все данные формы защищены от изменений. Корректировка возможна только
после выбора кнопки "Изменить". После сохранения информация снова доступна
только для чтения.
Должна быть предусмотрена возможность добавления в блокнот новой страницы с
назначениями препаратов, ввода в нее данных и сохранения их в листе
"Назначения".
Лабораторная работа №4. Программирование MS
Word
1.
задание 1
По аналогии с задачей для MS Excel, написать макрос, который бы
1. создал новый документ
2. вставил в него таблицу из 10 строк и 3 столбцов
3. для каждого из установленных в системе шрифтов выводил :
o в 1-м столбце - Порядковый номер шрифта,
o во 2-м столбце - Название шрифта,
o в 3-м столбце фразу "Computer IBM" данным шрифтом 12 пт
o в 4-м столбце - фразу "Кафедра ИВТ" данным шрифтом 12 пт
Если шрифтов окажется больше, чем строк таблицы - предусмотреть добавление
новых строк
замечание
Использовать коллекции FontNames, LandscapeFontNames, PortraitFontNames
объекта Application.
2.
задание 2
Написать макрос, который бы сжимал таблицы, удаляя в них пустые строки. Для
указания нужной таблицы должно быть достаточно поместить в нее курсор ввода
Связать его с клавишами Ctrl+1
3.
задание 3
Написать макрос, который бы корректировал текст, набранный в ошибочно
выбранной раскладке клавиатуры.
Связать его с клавишами Ctrl+3
пример


Ctktlrf -> Селедка
тщеуищщл -> notebook
Лабораторная работа №5. Программирование меню
1.
задание 1
Разработать новую панель инструментов для запуска макросов из заданий для MS
Excel. Каждый из трех макросов должен запускаться при помощи кнопок с
картинками, выпадающего меню и ComboBox'a.
2.
задание 2
Модифицировать контекстное меню Text, включив в его начало группу команд для
запуска макросов из заданий 1-4 для MS Word.
3.
задание 3
Загрузить документ План работы кафедры. Для него разработать Popup-меню
"Перейти к" для навигации по разделам документа. Соответствующие разделы
предварительно оформить в виде закладок.
Download