Меню сайта
Наш опрос
Статистика
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
VBA ExcelПользовательские формы в Excel. Традиционно изучая тему, электронные таблицы MS Excel, мы рассматриваем такие аспекты как создание простейших расчетных таблиц, встроенные функция и сортировку данных. При этом многие ученики не догадываются, какое мощное приложение попало в их руки, по двум причинам или они не знают о наличии VBA или просто не умеют им пользоваться. Необходимо помнить, что MS Excel – это мощное и гибкое средство разработки информационных систем, как простых, так и сложных, с индивидуальным интерфейсом, максимально приспособленным для решения конкретной задаче. MS Excel совмещает в себе как преимущества электронных таблиц с большим количеством встроенных функций, так и средств визуального программирования по средствам Visual Basic for Applications. VBA позволяет автоматизировать весь комплекс работ от сбора информации, ее обработки, анализа до создания отчетной документации и ее публикации как для офисного пользования, так и на Web-узле. Отдельно необходимо сказать о встроенных интеллектуальных средствах, которые быстро позволяют даже начинающему пользователю самостоятельно разрабатывать профессиональные приложения. Новым примером встроенных интеллектуальных средств VBA, в отличие от VB, является макрорекордер, который переводит все вручную выполняемые действия на рабочем листе Excel на язык VBA. Таким образом, макрорекордер позволяет поручить компьютеру самому создавать большие куски кода разрабатываемого приложения. Макрорекордер создает стандартный программный модуль, что дает нам возможность в будущем редактировать его. Исходя из всего выше сказанного, преподавая Visual Basic в старших классах нельзя не затронуть тему Visual Basic для приложений (Visual Basic for Applications сокращенно VBA). Данный язык по своим способностям ни чем не уступает Visual Basic, а в совокупности с функциями приложений даже превосходит его, если не по мощности, то по удобству и быстроте выполнения многих специфических функций (хранение и сортировка данных, выполнения различного рода расчетов и т.д.). Поэтому в 11 классе, после изучения языка программирования Visual Basic и электронных таблиц Excel, я ввожу дополнительно 5 часов для работы на языке VBA в Excel. На мой взгляд, это позволяет ученикам лучше понять объектную модель любого приложения из пакета Microsoft Office, и дает возможность сравнить программирование, в общем, на одном и том же языке, но в различных средах. При этом не следует забывать что, работая только на уровне «Рабочей Области» и «Панелей инструментов», мы используем только 10% возможностей любого приложения. Разработка уроков по теме версия 1.0, 2008
Данное электронное пособие является продолжением работы с языком программирования Visual Basic и может быть использовано после работы с пособием «Разработка уроков по теме "Основы объектно-ориентированного программирования и алгоритмизации в Visual Basic", которое было разработано мною в 2007 году. Также данное пособие можно использовать, как начальное введение в язык программирования Visual Basic. Способ подачи материала и уровень сложности можно регулировать в зависимости от уровня подготовки учащихся. Для ознакомления рекомендую давать код в отпечатанном варианте, с предварительным объяснением принципов его работы. В классах, где учащиеся знакомы с языком программирования Visual Basic, предлагаю больший упор делать на объектную модель Excel и на основные свойства, события и методы главных объектов. Таких как Application, Workbook, Worksheet и Range. Данное пособие состоит из следующих уроков: © Белкин Виктор, 2008 Все разработку можно скачать с сайта "Роялти - педагогу-новатору". Подробнее... Урок 1. Особенности языка VBA в Excel. Запись макросов с помощью макрорекордера. Цель занятия: Рассказать об особенностях языка VBA в Excel, научить пользоваться макрорекордером для записи макросов и редактировать их. Вступление. MS Excel является очень популярным средством обработки данных, поэтому широко используется как разработчиками, так и простыми пользователями. Но примерно 90% от общего числа пользователей работают только со средствами рабочего листа Excel без применения языка программирования VBA (Visual Basic for Applications), а значит, они используют не более 10% от реальных возможностей Excel. Таким образом, большая часть средств Excel остаётся невостребованной просто потому, что многие не знают о наличии VBA или не умеют им пользоваться. Макрорекордер является встроенным интеллектуальным средством VBA, которое переводит все вручную выполняемые пользователем действия на рабочем листе Excel на язык VBA. Также необходимо добавить, что язык VBA очень похож на язык программирования VB, что позволяет пользователям знакомым с основами языка VB, быстро вникнуть в суть программирования на VBA. Особенности языка VBA в Excel. Объектная модель Excel представляет собой иерархию объектов, подчиненных одному объекту Application, который соответствует самому приложению Excel. По аналогии этот объект соответствует объекту Form в VB. VBA точно также, как в VB используются полные и неявные ссылки на объект. Работа с макрорекордером. Для быстрого получения чернового варианта кода программы можно использовать макрорекордер – транслятор, создающий программу на языке VBA. Запустим программу Excel, и активизируем макрорекордер выбрав команду Сервис, Макрос, Начать запись. Появиться диалоговая панель Запись макроса (рис. 1). Это диалоговая панель позволяет задать параметры макроса.
Для просмотра только что записанного макроса выберите команду Сервис, Макрос, Макросы, что приведет к отображению диалоговой панели Макрос (рис. 3)
В диалоговом окне Макрос в списке выделите макрос и нажмите кнопку Изменить. Sub Макрос1() Записанный макрорекордером код надо рассматривать только как подсказку со стороны компьютера. В данном случае лучше записать данный макрос в следующем виде:
Теперь давайте запишем макрос сортировки данных. Для этого введем в столбец А набор однотипных данных, например текстовых. Вызовем макрорекордер и запишем процесс сортировки данных по возрастанию и убыванию. Единственное изменение, которое необходимо внести в этот макрос – это вместо конкретного диапазона в первой строке кода выделить ячейку А1. Тогда исправленный макрос будет иметь вид: Макрос для обратной сортировки будет иметь вид: Урок 2. Форма и Элементы управления. Цель занятия: Научить пользоваться панелью инструментов VBA и использовать формы для создания собственного интерфейса Рабочей книги. Введение По своей сути форма (или пользовательская форма UserForm) представляет собой диалоговое окно, в котором можно размещать различные элементы управления. В приложении может быть как одна, так и несколько форм. Основные свойства формы Name и Caption имеют такое же значение, как и в среде программирования VB. Метод Show отображает форму на экране, Hide – закрывает форму. В VBA имеется обширный набор встроенных элементов управления. Используя этот набор и редактор форм, нетрудно создать любой пользовательский интерфейс, который будет удовлетворять всем требованиям, предъявляемым к интерфейсу в среде Windows. Добавление формы в проект
В проекте появиться новая форма (рис. 1).
Как уже говорилось выше, пользовательская форма в Excel имеет точно такие же свойства, методы и события, как и стандартная форма Visual Basic6. Для желающих узнать больше, по данному вопросу, рекомендую скачать с сайта Роялти разработку 54 уроков по программированию в среде Visual Basic6, учителя информатики гимназии №2, г. Гурьевска Белкина В.В. Данная разработка содержит не только поурочные планы, но и содержит большой справочник по VB. Также в формате Word здесь содержатся таблицы с основными свойствами, методами и событиями многих элементов управления и формы. В качестве примера создадим форму с помощью, которой будем вводить данные в определенные ячейки рабочего листа. Для этого разместим на форме элементы управления TextBox и CommandButton. Создадим, обработчик события Click для кнопки, результатом работы которого будет последовательный ввод данных в пустые ячейки столбца А.
Для перехода к обработчику события Click кнопки Ввод, дважды щелкните по ней. Для того чтобы написать код можно воспользоваться макрорекордером или материалом предыдущего урока. Если у вас возникли вопросы, как все это сделать, вы можете просмотреть видеоролик, в котором показаны все этапы создания данного макроса. Данный макрос содержит ошибку, если лист чистый то данные будут начинать вставляться всегда с ячейки А2. Это связанно с тем что в проверяемом диапазоне уже есть сама ячейка А1, которая считается заполненной по умолчанию. Задание для самостоятельной работы. Урок 3. Проект «Табель успеваемости». Цель занятия: Показать практическое применение VBA совместно с Excel. Введение Сегодня на уроке рассмотрим создание специального приложения, задачей которого будет удобное хранение оценок и подсчет среднего балла по отдельным предметам. Можно сказать, что данное приложение будет служить электронным аналогом дневнику, но в отличии от него позволит в режиме реального времени проверять свою успеваемость, и предугадывать будущую оценку за четверть. Для лучшего понимания проблемы можно просмотреть следующую презентацию: «VBA-приложения в Excel». Работа над проектом. Прежде всего необходимо сформулировать задачу учащимся. Далее объяснить проблемы и возможные способы их решения, а также показать какие приемы можно использовать для увеличения производительности работы за компьютером. Пользовательские формы очень часто применяются тогда, когда необходимо защитить рабочий лист от несанкционированных действий пользователя с одной стороны и унифицировать работу с приложением с другой стороны. Для примера можно рассмотреть приложения на основе Excel, которые выполняют расчет заработной платы работников школы или ведут учет материально-технической базы предприятия (слайды №3-4). Постановка задачи. Создать приложение, которое должно иметь (слайд №6):
Логично разбить все задачу в соответствии с требованиями, предъявляемыми к приложению, тогда это будет выглядеть следующим образом.
Решение первой подзадачи. Этапы создания рабочей книги Теперь можно приступить к созданию нашего приложения на основе рабочей книги Excel. Так как все листы будут хранить однотипную информацию, то нет необходимости создавать все листы с нуля, мы пойдем более легким путем. Создадим один лист, зададим все необходимое форматирование и скопируем его столько раз, сколько предметов нас будет интересовать (слайды №9-16). Для упрощения проекта выберем 10 предметов. Создание формы
Для ввода оценок мы будем использовать форму и элементы управления, сгруппированные по предметам. Как видно из рисунка, форма содержит: 11 надписей (Label), 10 текстовых полей (TextBox), 10 рамок (Frame) внутри каждой по 3 переключателя (OptionButton) и одного календаря (DTPicker).
Все перечисленные элементы управления (ЭУ), кроме календаря являются основными и всегда располагаются на панели инструментов VBA, для использования календаря его необходимо подключить. Для этого надо вызвать контекстное меню панели инструментов и выбрать пункт Additional Controls… Далее создаем заготовку под будущее приложение. Сохраняем рабочую книгу под именем «Табель успеваемости». Переходим в редактор VBA (Alt+F11) и добавляем объект UserForm (пользовательская форма). Задаем следующие значения свойств формы.
Работа с элементами управления. Этапы создания ЭУ (слайды №23-26).
Созданным элементам управления необходимо задать значение следующих свойств:
Для того чтобы программа могла определять в какой рабочий лист вносить изменение, зададим каждому текстовому полю значение свойства Tag=имени предмета. Это связано с тем что все листы носят название соответствующих предметов, что позволит безошибочно определить куда вносить изменения. Для первого предмета – это Русский язык, для второго – Литература и т.д. ВверхУрок 4. Проект «Табель успеваемости». Создание формы "Ввод оценок". Цель занятия: Объяснить основные приемы записи кода в редакторе VBA. Введение Сегодня на уроке мы продолжим работать над приложением «Табель успеваемости». Нам необходимо расположить ЭУ на форме и создать код обеспечивающий вод данных в соответствующие листы рабочей книги. Создание остальных элементов управления. Так как для каждого предмета применяется однотипный набор предметов, то можно скопировать уже созданные, кроме первой надписи и календаря и вставить их еще 9 раз. После очередной вставки необходимо изменить значение всех свойств в русскоязычной части. Алгоритм создание ЭУ.
Вставка кнопок управления. Для отображения всех оценок и среднего балла, ввода оценок, очистки текстовых полей и закрытия формы нам понадобятся 4 кнопки с именами: Просмотр, Ввод, Очистить и Выход (слайды №30-36).
Две последние кнопки работают очень просто, поэтому у них маленький код.
Кнопка Выход завершает работу всего приложения без генерации, каких либо событий. Кнопка Очистить очищает все поля ввода формы, т.е. присваивает свойству Text пустую строку, для определения полей мы будем использовать свойство Tag элементов, только у текстовых полей ввода оно равно не пустой строке.
Кнопка Ввод должна определить, по какому предмету поставлена оценка, и выставить ее в первую свободную строку соответствующего листа. Для совместной работы всех частей приложения необходимо ввести переменные уровня модуля. Чтобы календарь показывал текущую дату, при появлении формы на экране, введем в код инициализации формы следующие команды. Код кнопки Просмотр, закрывает форму ввода и отображает форму просмотра оценок.
Урок 5. Проект «Табель успеваемости». Создание формы просмотр оценок и собственного меню. Цель занятия: Закончить работу над приложением, отладить программный код. Введение Сегодня на уроке мы продолжим работать над приложением «Табель успеваемости». Нам необходимо создать форму Просмотра оценок и написать код обеспечивающий работу формы (слайды №37-41). Создание формы просмотра оценок. Форма содержит текстовые поля для ввода всех оценок по предмету. Их имена совпадают с именами полей ввода оценок в рабочий лист (txtРусс, txtЛите и т.д.). Также форма содержит поля для вывода среднего балла по предмету, их имена образуются из первых путем добавления к ним букв Ср (txtРуссСр, txtЛитеСр и т.д.).
Кнопки ввод и выход имеет следующий код:
Теперь можно приступить к объяснению работы основного кода, записанного в событии инициализации формы. Первоначально вводим три переменные, роль которых понятна из их названий. Строковая переменная strВсеОценки хранит все оценки по данному предмету, переменная целого типа intСуммОценки хранит сумму всех оценок, с учетом их «веса» по этому же предмету и переменная sngСуммБалл – хранит средний балл по предмету. Далее в цикле мы проходим все листы, используя свойство Count рабочего листа Worksheets, которое вернет количество листов в книге. Выделяем i-ый лист определяем его имя, находим число занятых строк. Определяем в какие текстовые поля будем выводить оценки strИмяПоля = "txt" & Mid(strИмяЛиста, 1, 4) и strИмяПоля1 = "txt" & Mid(strИмяЛиста, 1, 4) & "Ср". После завершения работы над формами необходимо поговорить о том, как вызывать созданные формы непосредственно из Excel, не входя в среду разработки VBA. Здесь можно пойти двумя путями, первый путь это использование кнопок на рабочем листе и второй – это создание собственного меню.
Для того чтобы созданное меню заработало необходимо, в стандартном модуле VBA, добавить следующий код, который будет соответственно привязан к строкам OnAction = "Просмотр" и OnAction = "Ввод".
Как мы видим, из кода, панели инструментов возвращаются практически так же, как и удалялись. Просто свойству Visible присваиваем значение True. Задание для самостоятельной работы. Описать событие Change() для ЭУ Microsoft Date and Picker Control, так чтобы при изменение даты выводились все оценки по предметам за этот день. Полезные советы и ссылки
|
Поиск
Архив записей
Друзья сайта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||