Тема: Основы программирования в интегрированной среде Visual Basic. Инструментальная среда разработки Visual Basic Application (VBA). Макрорекордер. Использование макросов.
Цель работы: - научиться создавать, редактировать, удалять макросы; - освоить работу с макросами. Теоретические сведения Для автоматизации выполнения повторяющихся задач в Microsoft Office Excel можно быстро записать макрос. Использование макросов и пользовательских функций позволяет автоматизировать эти операции, перекладывая монотонную однообразную работу на плечи Excel. Другим поводом для использования макросов в вашей работе может стать необходимость добавить в Microsoft Excel недостающие, но нужные вам функции. Например, функцию сборки данных с разных листов на один итоговый лист, разнесения данных обратно, вывод суммы прописью и т.д.
Макрос- это запрограммированная последовательность действий (программа, процедура), записанная на языке программирования Visual Basic for Applications (VBA). Мы можем запускать макрос сколько угодно раз, заставляя Excel выполнять последовательность любых нужных нам действий, которые нам не хочется выполнять вручную. Модуль – совокупность описаний, инструкций и процедур, сохраненная под общим именем. Существуют модули двух типов: стандартный модуль и модуль класса Visual Basic. Макрорекордер- это небольшая программа, встроенная в Excel, которая переводит любое действие пользователя на язык программирования VBA и записывает получившуюся команду в программный модуль. Если включить макрорекордер на запись, а затем начать создавать свой еженедельный отчет, то макрорекордер начнет записывать команды вслед за каждым действием и, в итоге, получается макрос создающий отчет, как если бы он был написан программистом. Такой способ создания макросов не требует знаний пользователя о программировании и VBA. У такого способа есть свои плюсы и минусы:
- макрорекордер записывает только те действия, которые выполняются в пределах окна Microsoft Excel. Закрытие Excel или переключение в другую программу приведет к остановке записи; - макрорекордер может записать только те действия, для которых есть команды меню или кнопки в Excel. Программист же может написать макрос, который делает то, что Excel никогда не умел (сортировку по цвету, например или что-то подобное); - если во время записи макроса макрорекордером была введена ошибка, она будет записана. Однако можно нажать на кнопку отмены последнего действия (Undo) - во время записи макроса макрорекордером она не просто возвращает предыдущее состояние, но и стирает последнюю записанную команду на VBA. Создание макроса в среде Microsoft Visual Basic. Для ввода команд и формирования программы, т.е. создания макроса необходимо открыть специальное окно - редактор программ на VBA, встроенный в Microsoft Excel. В старых версиях (Excel 2003 и старше) для этого нужно выбрать в меню Сервис - Макрос - Редактор Visual Basic (Toos - Macro - Visual Basic Editor). В новых версиях (Excel 2007 и новее) для этого нужно сначала отобразить вкладку Разработчик (Developer). Выбирать Файл - Параметры - Настройка ленты (File - Options - Customize Ribbon) и включить в правой части окна флажок Разработчик (Developer). Теперь на появившейся вкладке будут доступны основные инструменты для работы с макросами, в том числе и нужная кнопка Редактор Visual Basic (Visual Basic Editor, рисунок 10.1). Рисунок 10.1 Окно вызова редактора Visual Basic
Задание 1. На вкладке Разработка в группе Код выберите команду Visual Basic (рисунок 10.2). Рисунок 10.2 Редактор Visual Basic При необходимости в меню Insert выберите команду Module. Модули будут созданы автоматически для всех листов книги. В окне программы модуля введите или скопируйте нужный текст макроса. Для запуска данного макроса из окна модуля нажмите клавишу F5. Когда макрос будет создан, в меню File выберите команду Close and Return to Microsoft Excel.
Задание 2. Запись макроса. При записи макроса все необходимые действия записываются программой записи макроса. Перемещение по ленте не включается в записанные шаги. Если вкладка Разработчик недоступна, выполните следующие действия для ее отображения: - нажмите кнопку Microsoft Office , а затем щелкните Параметры Excel; - в категории Личная настройка в группе Основные параметры работы с Excel установите флажок Показывать вкладку "Разработчик" на ленте, а затем нажмите кнопку ОК. Для установки уровня безопасности, временно разрешающего выполнение всех макросов, выполните следующие действия: - на вкладке Разработчик в группе Код нажмите кнопку Безопасность макросов (рисунок 10.1); - в группе Параметры макросов выберите переключатель Включить все макросы, а затем дважды нажмите кнопку ОК. Для предотвращения запуска потенциально опасного кода по завершении работы с макросами рекомендуется вернуть параметры, отключающие все макросы. - на вкладке Разработчик в группе Код нажмите кнопку Запись макроса; - в поле Имя макроса введите имя макроса. Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не допускаются пробелы; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса. Чтобы назначить в сочетании с клавишей CTRL клавишу быстрого вызова для запуска макроса, в поле Сочетание клавиш введите любую строчную или прописную букву. Выбранное сочетание клавиш заменит все совпадающие стандартные сочетания клавиш Excel на то время, пока книга, содержащая данный макрос, открыта. В списке Сохранитьв выберите книгу, в которой необходимо сохранить макрос. Если нужно, чтобы данный макрос был всегда доступен при работе в приложении Excel, выберите вариант Личная книга макросов. При выборе варианта Личная книга макросов создается скрытая личная книга макросов (Personal.xlsb) (если она еще не существует), в которой сохраняется данный макрос. В Microsoft Windows Vista эта книга сохраняется в папке C:\Users\имя_пользователя\Application Data\Microsoft\Excel\XLStart. В Microsoft Windows XP эта книга сохраняется в папке C:\Documents and Settings\имя_пользователя\Application Data\Microsoft\Excel\XLStart, откуда она будет автоматически загружаться при каждом запуске приложения Excel. Если необходимо автоматически выполнять макрос из личной книги в другой книге, необходимо также сохранить эту книгу в папке XLStart, чтобы при запуске приложения Excel открывались обе книги.
- введите описание макроса в поле Описание; - для начала записи макроса нажмите кнопку ОК; - выполните действия, которые нужно записать; - на вкладке Разработчик в группе Код нажмите кнопку Остановить запись . Можно также нажать кнопку Остановить запись слева от строки состояния. Задание 3. Копирование части макроса для создания другого макроса - откройте книгу, содержащую макрос, который нужно скопировать; - на вкладке Разработчик в группе Код нажмите кнопку Макросы; - в поле Имя макроса выберите имя макроса, который нужно скопировать; - нажмите кнопку Изменить; - в окне редактора Visual Basic выделите строки макроса, которые нужно скопировать. Для копирования макроса целиком включите в выделенную часть строки слова Sub и End Sub; - в меню Edit выберите команду Copy. Можно также щелкнуть правой кнопкой мыши, а затем в контекстном меню выбрать команду Copy или нажать клавиши CTRL+C; - в поле Procedure окна кода выберите модуль, куда нужно поместить текст; - в меню Edit выберите команду Paste. Можно также щелкнуть правой кнопкой мыши, а затем в контекстном меню выбрать команду Paste или нажать клавиши CTRL+V. Личную книгу макросов (Personal.xls) редактировать нельзя, поскольку она является скрытой книгой, которая всегда открыта. Сначала его необходимо отобразить с помощью команды Показать. Файл также можно открыть в редакторе Visual Basic, нажав клавиши ALT+F11. Задание 4. Назначение макроса объекту, графическому объекту и элементу управления - щелкните на листе правой кнопкой мыши объект, графический объект или элемент управления, которому нужно назначить существующий макрос, а затем в контекстном меню выберите команду Назначить макрос;
- в поле Имя макроса выберите макрос, который нужно назначить. Задание 5. Удаление макроса. Выполните одну из процедур, описанных ниже: - откройте книгу, содержащую макрос, который нужно удалить; - если макрос, который требуется удалить, хранится в личной книге макросов (Personal.xlsb) и эта книга скрыта, для ее отображения выполните указанные ниже действия: 1) на вкладке Вид в группе Окно нажмите кнопку Отобразить окно; 2) в разделе Показать скрытое окно книги выберите пункт "PERSONAL" и нажмите кнопку ОК; 3) в списке Находится в выберите рабочую книгу с макросом, который требуется удалить. Например, выберите вариант Эта книга; 4) в поле Имя макроса выберите имя макроса, который нужно удалить; 5) нажмите кнопку Удалить. Задание 6. Вывод на экран названий месяцев. При составлении различных отчетов и сводок в качестве названий строк часто используются названия месяцев. Создадим макрос, который будет выводить на экран столбец с названиями месяцев в ячейках A1:A12. Для этого выполните следующие действия: - установите курсор в какую-нибудь ячейку книги, за исключением A1; - откройте окно редактораVisual Basic; - введите в поле ввода Имя макроса название создаваемого макроса Месяц_абс. В поле ввода Описание введите текст: Введите названия месяцев. Нажмите кнопку Параметры. Появится окно диалога “Запись макроса”; - введите клавишу быстрого вызова макроса. Для этого перейдите в поле ввода Ctrl, переключитесь на латинский регистр, удалите находящуюся там букву и введите букву m. После этого нажмите кнопку OK. Начиная с этого момента, осуществляется запись макроса; - выполните последовательность действий, которую будет выполнять макрос: установите курсор в ячейку A1; введите слово январь; поместите указатель мыши в правый нижний угол ячейки A1, при этом указатель мыши изменит вид на черный крестик; нажмите кнопку мыши и, удерживая ее нажатой, продолжите выделение до ячейки A12; - нажмите на кнопку Остановить макрос. Если вы не выполните условие 1 шага, то есть курсор будет находиться в ячейке A1, то макрос будет правильно работать только в том случае, когда вы перед нажатием клавиш Ctrl+m поместите курсор в ячейку A1. Макрос записан и теперь нажатие клавиш Ctrl+m вызовет появление в ячейках A1:A12 названий месяцев. При записи макроса мы не включали режим записи с относительными ссылками, поэтому названия месяцев будут появляться только в ячейках A1:A12. Для устранения этого неудобства предназначен режим записи Задание 7. Создание макроса с относительными ссылками. В этом примере создадим макрос с относительными ссылками для размещения заголовка таблицы продаж компьютеров в произвольном месте рабочей книги. Перед созданием макроса включите режим записи с относительными ссылками. Для этого выполните следующие действия:
- выполните команду Запись макроса - С относительными ссылками; - введите в поле ввода Имя макроса название создаваемого макроса — Заголовок. В поле ввода Описание введите текст: Введите названия компьютеров; - нажмите кнопку Параметры. Появится окно диалога “Запись макроса”; - введите наименование добавляемого пункта меню: Типы ЭВМ. Нажмите кнопку OK; - выполните последовательность действий, которую будет выполнять макрос: введите заголовок таблицы: Тип компьютера; нажмите клавишу Enter; введите тип 1 компьютера CP_35_SR и нажмите клавишу Tab. Аналогично введите следующие типы компьютеров CP_40_SR, CP_55_LS, CP_55_SX. Выделите четыре ячейки с введенными типами компьютеров, выберите команду Формат - Столбец, а затем команду Подгон ширины (поскольку названия типов компьютеров не умещаются полностью в ячейке); - Нажмите на кнопку Остановить макрос. После окончания записи макроса в меню команды Сервис появится пункт с названием Типы ЭВМ. Для выполнения макроса “Заголовок” нужно нажать кнопку мыши на пункте с названием Типы ЭВМ. В том месте таблицы, где расположен курсор, появится заголовок следующего вида: Тип компьютера CP_35_SR CP_40_SR CP_55_LS CP_55_SX Этот макрос отличается от макроса, созданного в примере №1 тем, что заголовок таблицы можно поместить в любом месте текущей рабочей книги. Задание 8. Макрос “арифметическая прогрессия”. В результате работы макроса “арифметическая прогрессия” выделенные в строке ячейки заполняются числами, являющимися членами арифметической прогрессии с разностью равной 0,5 или с шагом 0,5. Для записи макроса “арифметическая прогрессия ” выполните следующие действия: - введите в ячейку A1 число 1000 и выделите ячейки A1:C1; - выполните команду Сервис - Запись макроса - Начать запись. Появится окно диалога “Запись макроса”; - введите в поле ввода Имя макроса название записываемого макроса Прогрессия и нажмите кнопку Параметры. Окно диалога “Запись макроса” расширяется; - перейдите на латинский регистр и введите букву p для клавиши быстрого вызова макроса; - нажмите кнопку OK в окне диалога “Запись макроса”, которое после этого закроется. Начиная с этого момента, все ваши действия будут записываться в макрос. В строке состояния появится слово “Запись”; - выполните команду Правка - Заполнить - Прогрессия. Появится окно диалога «Прогрессия»; - установите флажок по строкам. Это означает, что прогрессия будет строится в выделенной строке; - установите флажок арифметическая. Это означает, что ячейки в строке будет заполняться числами, являющимися членами арифметической прогрессии; - в окне “Шаг” введите число 0,5 — разность арифметической прогрессии; - нажмите кнопку OK, чтобы выйти из окна диалога “Прогрессия”. Теперь нужно закончить запись макроса; - нажмите кнопку Остановить макрос. Результаты работы макроса “арифметическая прогрессия”. Он запускается нажатием Ctrl+p. Перед этим нужно ввести первый член прогрессии и выделить ячейки в строке, где будут размещаться члены арифметической прогрессии с разностью 0,5. После нажатия клавиш Ctrl+p ячейки A1:G1 заполнятся числами 1000 1000,5 1001 1001,5 1002 1002,5 1003. Если первая ячейка среди выделенных, не содержит число, то заполнение числами не произойдет, и ячейки останутся без изменения. Контрольные вопросы. 1. Дать понятие о макросе. Для чего он используется? 2. Дать понятие модуля. Какие типы модулей представлены в Microsoft Excel? 3. Какие настройки необходимо предварительно выполнить для настройки макросов в Microsoft Excel 4. Как осуществить запись макрокоманды? 5. Какова последовательность действий при создании макроса с помощью макрорекордера? 6. Какие требования налагаются при создании имени макроса? 7. Какие символы можно использовать для задания сочетания клавиш при запуске макроса? 8. Как запустить макрос на выполнение? 9. Какие два режима записи, отличающиеся разными видами ссылок Вам известны? Чем они отличаются друг от друга? 10. Как осуществить выбор нужного режима ссылок? 11. Как назначить макрос графическому объекту? 12. Как активизировать графический объект, к которому назначен макрос? 13. Как назначить макрос рисунку? 14. Как удалить существующий макрос? 15. Какие действия необходимо предпринять для переименования макроса? Литература[5, 8]. Лабораторная работа №11 Тема: Основы программирования в интегрированной среде Visual Basic. Работа с элементами управления на рабочем листе. Добавление элементов управления к расчетным таблицам. Стандартные функции, используемые при работе с элементами управления. Цель работы: - овладеть навыками работы с элементами управления; - изучить работу с элементами управления Форма. Теоретические сведения Для создания форм в редакторе VBA нужно выбрать меню Insert-UserForm. Откроется окно дизайнера форм (Form designer), в котором будет представлено пустое серое окно формы (по умолчанию она называется UserForm1) и рядом ToolBox – панель с набором элементов управления.(рисунок 11.1). Рисунок 11.1 Создание формы Некоторые самые важные свойства форм приведены далее: Name – это свойство определяет имя формы. Имя формы используется только программистом в коле для этой формы. После создания формы ее имя, предлагаемое по умолчанию (UserForm1), рекомендуется заменить на что-нибудь более значимое, чтобы было проще ориентироваться в программе. Caption – определяет заголовок формы(по умолчанию совпадает с именем формы). Рекомендуется заменять стандартный заголовок на значимый, чтобы он напоминал пользователю о назначении формы. Enabled – если это свойство установлено в false, пользователь не сможет работать с формой. Используется для временного отключения формы. ShowModal – если свойство установлено в True (по умолчанию), то пользователь не сможет перейти к другим формам или вернуться в документ, пока не закроет эту форму (так называемый «модальный» режим работы). Самые важные методы форм перечислены в следующем списке: Метод Show() – после того, как форма будет готова, нужно обеспечить ее запуск в документе. UserForm1.Show Этот метод можно вызвать: - из обычного макроса, привязанного к кнопке или клавиатурной комбинации; - из кода для элемента управления, расположенного в самом документе (например, CommandButton) или на другой форме (для перехода между формами) и т.д. Метод Hide() – после того, как пользователь введет или выберет нужные данные на форме и нажмет требуемую кнопку, форму необходимо спрятать. Для этого можно воспользоваться двумя способами: Спрятать форму: UserForm1.Hide Форма будет убрана с экрана, но останется в памяти. Окончательно форма удалится из памяти при закрытии документа. Удалить форму: Unload UserForm1 Используется в том случае, если форма больше не понадобится Самые важные события форм приведены далее: Initialize – происходит при подготовке формы к открытию (появлению перед пользователем). Обычно в обработчик для этого события помещается код, связанный с открытием соединений с базой данных, настройкой элементов управления на форме, присвоением значений по умолчанию и т. д. Click (по умолчанию) и DbClick – реакция на одиночный или двойной щелчок мыши соответственно. Для формы эти события используются не так часто. Обычно обработчики щелчков применяются для кнопок. Error – это событие используется при возникновении ошибки в форме, предоставляя пользователю возможность исправить сделанную им ошибку Terminate – используется при нормальном завершении работы формы и выгрузке ее из памяти. Поскольку форма – это во многом контейнер для хранения других элементов управления, главное ее событие – Initialize. Все остальные события используются обычно не для формы, а для расположенных на ней элементов управления. Элементы управления форм - это элементы диалогового окна, позволяющие пользователю взаимодействовать с программой. они включают в себя кнопки-переключатели, текстовые поля, линейки прокрутки, командные кнопки и так далее. Элемент управления LABEL - это самый простой элемент управления формы. Надпись – это просто область формы, в которой выводится какой-то текст (рисунок 11.2). Рисунок 11.2 Элемент управления Label Данный элемент управления используется как пояснение для пользователя, либо как пояснение для других элементов управления формы. Главное свойство элемента управления - это Caption, тот текст, который будет выводиться в форме. Большая часть остальных свойств относится к форматированию этого текста или настройке внешнего вида этого элемента управления. Элемент управления TextBox - текстовое поле, один из самых часто используемых элементов управления. Он используется для приема каких-либо текстовых данных, вводимых пользователем, для вывода пользователю текстовых данных с возможностью их редактирования, копирования и печати (рисунок 11.3). Рисунок 11.3 Элемент управления TextBox Важные свойства этого элемента управления: Value (или Text, эти два свойства для текстового поля идентичны) – то текстовое значение, которое содержится в этом поле. Используется для занесения исходного текстового значения и для приема значения, введенного пользователем, в строковую переменную. AutoSize – позволяет текстовому полю автоматически менять свой размер, чтобы поместить весь текст. Использовать не рекомендуется, так как может нарушиться весь дизайн формы. ControlTipText – текст всплывающей подсказки, которая появляется, когда пользователь наводит указатель мыши на элемент управления. Рекомендуется к заполнению для всех элементов формы. Enabled – если установить в False, то текст в поле станет серым и с содержимым ничего нельзя будет сделать (ни ввести текст, ни выделить, ни удалить). Обычно это свойство используется, чтобы показать пользователю, что этот элемент управления отключен до выполнения каких-либо условий. MaxLength – максимальная длина значения, которое можно ввести в поле. MultiLine – определяет можно ли использовать в текстовом поле несколько строк или только одну. PasswordChar – позволяет указать за каким символом будут «прятаться» вводимые пользователем значения. Используется, при вводе пароля. WordWrap – настоятельно рекомендуется включать в тех ситуациях, когда значение MultiLine установлено в True. В этом случае будет производиться автоматический переход на новую строку при достижении границы текстового поля Остальные свойства по большей части относятся к оформлению текстового поля и его содержания. Главное событие для текстового поля – это событие Change (т.е. изменение содержания поля). Элемент управления ComboBox - комбинированный список, позволяет пользователю выбирать «готовые» значения из списка, так и вводить их значения самостоятельно (хотя это можно запретить) Через окно свойств заполнить список позициями не получится - для этой цели придется использовать специальный метод AddItem(). Обычно он помещается в обработчик события для формы. Применение его может выглядеть так: Private Sub UserForm_Activate() ComboBox1.AddItem "Санкт-Петербург" ComboBox1.AddItem "Москва" ComboBox1.AddItem "Владивосток" ComboBox1.AddItem "Казань" End Sub Самые важные свойства комбинированного списка: MatchEntry – определяет, будут ли при вводе пользователем первых символов значения выбираться подходящие позиции из списка. Возможность очень удобная, рекомендуется сохранить значение, которое используется по умолчанию MatchRequired – определяет, разрешается ли пользователю вводить значение, которого нет в списке. По умолчанию False, т.е. разрешено. Value (или Text) – позволяет программным путем установить выбранное значение в списке или получить в переменную выбранное или введенное пользователем значение. Главное событие для комбинированного списка – Change. Элемент управления ListBox -– очень похож на комбинированный список, но применяется гораздо реже по той причине, что в нем нельзя открыть список значений по кнопке, все значения видны сразу, и поэтому большое количество позиций в нем уместить трудно; пользователь не может вводить свои значения – только выбирать из готового списка. Но у этого элемента управления есть и преимущества: в нем пользователь может выбирать не одно значение, как в ComboBox, а несколько. Основные свойства, методы и события у ListBox – те же, что и у ComboBox. Главное отличие – это свойство MultiSelect, которое позволяет пользователю выбирать несколько значений. По умолчанию это свойство отключено. Элементы управления CheckBox и ToggleButton - флажки (CheckBox) и кнопки с фиксацией (ToggleButton) используются для выбора невзаимоисключающих вариантов (если вариантов немного). Они представлены на рисунке 11.4. Рисунок 11.4 Флажки и кнопки с фиксацией Задание 1. Создание функций пользователя в Excel. Система программирования VBA предназначена для работы с объектами Office, позволяет эффективно ее применять для автоматизации деятельности, связанной с разработкой различных типов документов. Рассмотрим алгоритм создания функций пользователя в VBA: - вызвать окно редактора кода VBA, выполнив команду Сервис / Макрос / Редактор Visual Basic или нажать Alt+F11; - выполнить пункт меню редактора Insert / Module (Вставка / Модуля); - далее выполнить Insert / Procedure (Вставка /Процедура). В открывшемся диалогом окне Add Procedure ввести имя функции (например, СУММА5) и установить переключатели: Type (тип) – в положение Function (функция); Scope (Область определения) - в положение Public (Общая) и щелкнуть ОК (рисунок 11.5). Рисунок 11.5 Создание функции пользователя в VBA - в окне редактора для программирования VBA появится заготовка функции: заголовок - Public Function СУММА5() и окончание - End Function, между которыми надо поместить код тела функции (рисунок 11.6). Рисунок 11.6 Окно редактора для программирования VBA - далее вводим список параметров функции, например, в скобках указываем (x, y, z, i, j), тип данных (для точных расчетов) и тип возвращаемого функцией значения (в данном примере не будем вводить). Кроме того, вводим тело функции, например, СУММА5 = x + y + z + i + j. В итоге получим следующий текст программы: Public Function СУММА5(x, y, z, i, j) СУММА5 = x + y + z + i + j End Function - возвращаемся в окно приложения Excel, в котором, например, нам необходимо выполнить суммирование пяти значений; - выполняем "Вставка/Функция" и в открывшемся окне мастера функций выбираем категорию «Определенные пользователем», а в окне «Выберите функцию» выделяем СУММА5 и щелкаем ОК (рисунок 11.7). Рисунок 11.7 Окно аргументы функции - далее выбираем ячейки со значениями и щелкаем ОК. Получаем следующий результат (рисунок 11.8). Рисунок 11.8 Результат работы функции СУММА5 Контрольные вопросы. 1. Что такое элементы управления в Visual Basic? 2. С помощью чего добавляются элементы управления? 3. Какую функцию выполняет элемент управления Label в Visual Basic? 4. Какую функцию выполняет элемент управления Текстовое поле - TextBox в Visual Basic? 5. Какую функцию выполняет элемент управления Командная кнопка Command Button. в Visual Basic? 6. Какую функцию выполняет элемент управления Переключатель - Option Button в Visual Basic? 7. Какую функцию выполняет элемент управления Таймер? 8. Какая кнопка используется для размещения Таймера на форме? 9. Какие свойства имеет элемент Таймер? 10. Сколько максимально возможное значение свойства Interval? 11. Какие действия происходят, если значения свойство Enabled True (Истина) или False (Ложь)? Литература[5, 8]. Лабораторная работа №12 Тема: Основы программирования в интегрированной среде Visual Basic. Интерфейс Visual Basic for Application. Назначение окон VBA. Форма и элементы управления. Добавление формы в проект. Свойства формы. События формы. Создание формы калькулятор. Цель работы: - изучить интерфейс Visual Basic for Application; - освоить работу с формами Теоретические сведения Во многих ситуациях макрорекордер очень удобен, но в реальной работе только им обойтись невозможно. Слишком много не умеет макрорекордер: он не умеет проверять значения, чтобы в зависимости от него выполнить какое-либо действие, не работает с циклами, не умеет перехватывать и обрабатывать ошибки. Макросы, которые созданы в макрорекордере, очень ограничены с функциональной точки зрения. Полные возможности программирования в Office раскрываются при использовании редактора Visual Basic, и при серьезной работе без него не обойтись. Прежде чем начать работать с редактором Visual Basic, нужно его открыть. Во всех приложениях Office это делается одинаково: - самый простой способ: в меню Сервис выбрать Макрос -> Редактор Visual Basic; - самый быстрый способ: нажать <Alt>+<F11>; - можно также воспользоваться кнопкой на панели инструментов Visual Basic (предварительно сделав ее видимой); - можно вызвать редактор при возникновении ошибки в макросе; - можно открыть готовый макрос на редактирование в диалоговом окне Макрос. В любом случае откроется окно, похожее на представленное на рисунке 12.1.
Рисунок 12.1 Окно редактора Visual Basic в Excel Всего в редакторе Visual Basic предусмотрены 9 окон: - Project Explorer — окно проводника проекта. По умолчанию оно открыто и находится в левой части окна редактора Visual Basic. В нем можно просмотреть компоненты проекта и выполнить с ними множество операций; - UserForm — окно формы. Появляется тогда, когда вы редактируете пользовательскую форму из окна дизайнера формы; - Toolbox — панель инструментов управления. Из него можно добавить элементы управления в форму или в документ. Появляется вместе с окном дизайнера форм; - Properties — одно из самых важных окон. Через него можно просмотреть свойства элемента управления или компонента проекта и их изменить; - Code — окно программного кода. В этом окне выполняется основная работа по написанию кода макроса. При открытии программного модуля открывается автоматически; - Object Browser — обозреватель объектов. Необходим для получения информации о классах, доступных программе; - Watch — окно контролируемых выражений. Используется во время отладки для отслеживания значений выбранных переменных программы и выражений; - Locals — окно локальных переменных. Нужно для отслеживания во время отладки значений переменных текущей процедуры; - Immediate — возможность при отладке выполнить отдельные строки программного кода и немедленно получить результат. Найти любое окно, можно очень просто: нужно выбрать его в меню View, и если оно было скрыто, оно появится в редакторе. Задание 1. Загрузить Excel. В меню Сервис –Макрос – Безопасность – Среднее (установить). Загрузить Сервис – Макрос – Редактор Visual Basic. В открытом окне проекта интегрированной среды разработки открыть форму UserForm1 (пустая). Используя панель инструментов ToolBox создать форму по образцу (рисунок 12.2). Рисунок 12.2 Образец формы Создать поле Label для вывода результатов расчетов. Создать кнопку «Умножение». Написать модуль Умножение_Click() (двойным щелчком по кнопке – откроется окно модуля). Private Sub Умножение_Click() Label(номер).Caption = Val(TextBox1.Text) * Val(TextBox2.Text) End Sub Открыть свойство поля Label(номер) – удалить надпись в свойстве Caption. Написать модуль Выход_Click() (двойным щелчком по кнопке – откроется окно модуля). Private Sub Выход_Click() MsgBox "Выйти из формы?", vbOKOnly UserForm1.Hide End Sub Создать модуль запуска формы в меню Insert – Module Sub For_Activ() UserForm1.Show End Sub Закрыть окно проекта. В окне книги Excel на листе создать кнопку и присвоить ей действие макроса For_Activ (появится в окне макроса после написания модуля в проекте). Проверить работу макроса и модуля. Самостоятельно создать в проекте на форме еще кнопки: сложение, вычитание, деление, очистка и выход (рисунок 12.3). Рисунок 12.3 Образец формы Написать коды к каждой кнопке. Кнопка Выход: Private Sub Выход_Click() MsgBox "Выйти из формы?", vbOKOnly UserForm1.Hide End Sub Кнопка Очистка: Private Sub Очистка_Click() TextBox1.Text = "" TextBox2.Text = "" End Sub Создать заголовок в форме «Калькулятор». Сохранить книгу с именем «Калькулятор». Задание 2. Создадим макрос для автоматического суммирования двух чисел в ячейках A1, B1 и размещения результата в ячейке C1, а также заливки ячейки C1 бирюзовым цветом (рисунок 12.4). Рисунок 12.4 Автоматическое суммирование двух чисел Алгоритм создания макроса для поставленной задачи: - выберите Сервис/Макрос, Начать запись; - в поле Имя макроса введите имя для макроса. Первым символом имени макроса должна быть буква. В имени макроса не допускаются пробелы; в качестве разделителей слов можно использовать знаки подчеркивания; - для того чтобы запускать макрос с помощью сочетания клавиш, введите букву в поле Сочетание клавиш. Допускается использование сочетаний CTRL+ буква (для строчных букв) или CTRL+SHIFT+ буква (для прописных букв), где буква — любая буквенная клавиша на клавиатуре. Не выбирайте стандартного сочетания клавиш, так как выбранное сочетание клавиш подавляет стандартные сочетания клавиш Microsoft Excel на то время с данной книгой; - в поле "Сохранить" выберите книгу, в которой требуется сохранить макрос. Сохраните макрос в «Эта книга». Для создания краткого описания макроса, введите необходимый текст в поле Описание. На скриншоте представлен пример заполнения окна диалога «Запись макроса» (рисунок 12.5). Рисунок 12.5 Запись макроса - выполните макрокоманды, которые нужно записать (рисунок 12.6). Рисунок 12.6 Запись макрокоманд макроса - Нажмите кнопку Остановить запись на плавающей панели инструментов «Ос» (Остановить запись) или Сервис / Макрос / Остановить макрос. По окончании записи макроса он появляется в списке макросов под своим именем. Редактор VBA автоматически записал последовательность макрокоманд или программу по выполненным действиям: Контрольные вопросы. 1. Какие способы открытия редактора Visual Basic Вы знаете? 2. Для чего служит окно Project Explorer? 3. Для чего служит окно UserForm? 4. Для чего служит окно Toolbox? 5. Для чего служит окно Properties? 6. Для чего служит окно Code? 7. Для чего служит окно Object Browser? 8. Для чего служит окно Watch? 9. Для чего служит окно Locals? 10. Для чего служит окно Immediate? Литература[5, 8]. Лабораторная работа №13 Тема: Основы программирования в интегрированной среде Visual Basic. Процедуры и функции. Создание форм для ввода, накопления и вычисление статистических параметров данных, записанных на листе таблицы EXCEL. Цель работы: - изучить основные операторы VBA; - научиться использовать процедуры и функции VBA. Теоретические сведения В Visual Basic, как и во многих других языках программирования, весь программный код находится внутри процедур. Что же такое процедура? Процедура – это подпрограмма. Она начинается оператором Sub и заканчивается оператором End, между которыми и помещается код. Такие процедуры могут вызываться или самим Visual Basic (процедуры обработки событий), или другими процедурами. При этом обработчики событий реализуются как процедуры. Имя процедуры обработки события состоит из имени объекта и имени события: Private Sub Command1_Click() End SubМожно создавать и собственные процедуры, так называемые общие процедуры. Для этого нужно перейти к секции (General) (Declaration). В окне кода введите Sub, затем имя, например, Roots, и нажмите клавишу [Enter]. После этого появляется новая процедура: Sub Roots () End SubЭта процедура относится к секции (General) (Declaration). Заголовок процедуры заканчивается пустыми скобками, однако там могут помещаться аргументы. Использование аргументов в процедурах событий можно увидеть на примере события MouseMove. Для некоторых событий после имени в скобках указываются аргументы, при помощи которых процедуре передаются необходимые ей значения. Для процедур обработки событий эти аргументы обычно устанавливает Visual Basic. Если выбрать из (Procedure) событие MouseMove, то процедура будет выглядеть так: Private Sub Command1 MouseMove(_Button As Integer, _Shift As Integer, _X As Single, _Y As Single)End SubДля события MouseMove Visual Basic передает четыре аргумента – состояние кнопок мыши Button, клавиши Shift и координаты ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|