Изучая тему «Электронные таблицы MS Excel», обычно мы рассматриваем такие аспекты, как создание простейших расчетных таблиц, встроенные функции и сортировку данных. При этом многие ученики не догадываются, какое мощное приложение попало в их руки. Причины тут две: они либо не знают о наличии Visual Basic for Applications (VBA), либо просто не умеют им пользоваться.
Полностью публикация приведена в формате PDF:Скачать/Просмотреть(Для просмотра необходима программа Adobe Reader или ее произвольный аналог).
Необходимо помнить, что Excel – это весьма гибкое средство разработки информационных систем, как простых, так и сложных, с индивидуальным интерфейсом, максимально приспособленным для решения конкретной задачи. Excel совмещает в себе преимущества электронных таблиц с большим количеством встроенных функций и средств визуального программирования с помощью VBA. Visual Basic for Applications позволяет автоматизировать весь комплекс работ – от сбора информации, ее обработки, анализа до создания отчетной документации и ее публикации, как для офисного пользования, так и на web-узле.
Отдельно необходимо сказать о встроенных интеллектуальных средствах, позволяющих даже начинающему пользователю самостоятельно разрабатывать профессиональные приложения. Примером встроенных интеллектуальных средств VBA является макрорекордер, который переводит все вручную выполняемые действия на рабочем листе Excel на язык VBA. Таким образом, это устройство позволяет поручить компьютеру самому создавать большие куски кода разрабатываемого приложения. Макрорекордер создает стандартный программный модуль, что дает нам возможность в будущем редактировать его.
Преподавая Visual Basic в старших классах, нельзя не затронуть тему VBA. Ведь Visual Basic for Applications по своим способностям ничем не уступает Visual Basic, а в совокупности с функциями приложений даже превосходит его, если не по мощности, то по удобству и быстроте выполнения многих специфических функций (хранение и сортировка данных, выполнения различного рода расчетов и так далее). Поэтому в 11-м классе я ввожу дополнительно 5 часов для работы на языке VBA в Excel. На мой взгляд, это позволяет ученикам лучше понять объектную модель любого приложения из пакета Microsoft Office и дает возможность сравнить программирование, в общем, на одном и том же языке, но в различных средах. При этом не следует забывать, что, работая только на уровне «Рабочей области» и «Панелей инструментов», мы используем только 10 процентов возможностей любого приложения.
Какие преимущества дает такой подход:
стопроцентное объединение мощи Excel и VBA при разработке приложений;
использование макрорекордера для записи макросов, то есть программного кода;
быстроту и легкость создания пользовательских форм;
возможность полностью изменить интерфейс окна приложения;
использование внутренних команд Excel.
Примерами по данной теме для учеников служат разработки, созданные мной для школьной бухгалтерии:
программа введения «Товарно-материальных ценностей»;
программа расчета заработной платы работников школы;
программа введения ордеров.
Познакомившись с ними и поняв, какие функции они выполняют, ребята осознают, насколько сложно было бы решить эти задачи, используя только Visual Basic без подключения всех возможностей Excel, и наоборот.
На уроках я предлагаю ученикам вместе со мной разработать проект «Табель успеваемости», при этом подвожу их к решению задачи таким образом, чтобы они поняли: решить ее стандартными средствами Excel без использования Visual Basic невозможно.
Постановка задачи: построить приложение, которое позволит хранить данные о полученных оценках.
Решение: ребятам предлагают создать книгу с одним рабочим листом и таблицей, в которую вносятся отметки, полученные за конкретный день. (Рис. 1)
После обсуждения данного проекта решения сообща находим его минусы:
трудно найти отметку за конкретный день и по конкретному предмету;
нет возможности вводить отметки сразу по нескольким предметам, без ввода названия предмета и типа урока;
нет возможности просмотра всех отметок и среднего балла с учетом «веса» отметки. На данном этапе ученики должны понять, что пришло время программирования – использования форм для ввода и вывода информации;
нет удобного (пользовательского) интерфейса.
Подытожив все сказанное, приходим к новому варианту решения данной задачи.
1) Создание отдельных листов на каждый предмет.
2) Создание пользовательской формы для ввода и просмотра отметок.
3) Создание пользовательской формы для просмотра всех оценок и среднего балла.
4) Создание собственной панели инструментов из двух кнопок для вызова двух форм.
На следующих занятиях ученики приступают к созданию пользовательских форм, отвечающих за ввод и вывод отметок и среднего балла.
Главная проблема заключается в именах элементов управления форм и именах рабочих листов. Во-первых, имена должны нести смысловую нагрузку, во-вторых, имена элементов управления должны быть тесно связаны с соответствующими листами рабочей книги. Это дает нам возможность использовать более простые алгоритмы для заполнения табеля оценками и вывода всех отметок вместе со средним баллом. Внешний вид формы «Ввод отметок» проекта «Табель успеваемости» показан на рис. 2.
Рис. 2
Для вывода отметок и среднего балла применяется вторая форма – «Просмотр оценок» проекта «Табель успеваемости». (Рис. 3)
Для создания собственной панели инструментов используем модуль «Эта книга». В данный модуль помещаем код, который будет отвечать за создание и удаление пользовательской панели инструментов.
В событии, связанном с закрытием рабочей книги, мы поместим код, отвечающий за восстановление стандартного вида Excel:
Private Sub Workbook_BeforeClose (Cancel As Boolean)
Возвращаем на место панели инструментов «Стандартная» и «Форматирование», а также строку формул.
End Sub
В событии, связанном с открытием рабочей книги, помещаем код, отвечающий за создание пользовательской панели инструментов:
Private Sub Workbook_Open()
Удаляем панели инструментов «Стандартная» и «Форматирование», а также строку формул.
Создаем собственную панель инструментов.
Проект выполняется несколько уроков. На них ребята получают необходимую информацию о свойствах, методах и событиях новых объектов. Но так как этой теме предшествовало изучение среды программирования VB, то больших сложностей при создании данного проекта не возникало. На заключительном уроке ученики должны получить полностью автоматизированный проект, в котором ввод, вывод и редактирование данных будет осуществляться только через пользовательские формы. Прямой доступ к листам рабочей книги у пользователя будет отсутствовать, что повышает уровень защиты данных от ввода ошибочных значений и от случайного их удаления.
В заключение хочется сказать о том, что многие считают VB «мертвым» языком, но если учесть, что Microsoft Office используется огромным количеством пользователей в офисах и бухгалтериях, то роль VBA остается довольно значимой до сих пор. С другой стороны, в наше время борьбы с пиратскими копиями программных продуктов, покупая лицензионный диск Microsoft Office, вы одновременно приобретаете лицензионную среду разработки.
Виктор БЕЛКИН, учитель информатики гимназии №2, Гурьевск, Калининградская область
Комментарии