[an error occurred while processing this directive] | |||||||||||||||||||||||||||||||
1-й час. Знакомство с Visual Basic for Applications 3-й час. Работа с элементами управления 4-й час. Переменные и константы 6-й час. Логика условных операторов 7-й час. Циклические вычисления 9-й час. Основные объекты Excel 11-й час. Редактор Visual Basic 15-й час. Автоматизация экранных форм 20-й час. Получение внешних данных |
3-й час. Работа с элементами управленияВо 2-м часе, осознали вы это или нет, мы начали изучение некоторых компонентов пользовательского интерфейса. Вы научились вставлять командные кнопки, графические изображения и кнопки инструментов в разрабатываемые приложения. В этом часе мы полностью сосредоточим внимание на работе с элементами управления. В этом часе будут рассмотрены следующие вопросы.
Введение в процесс разработки приложенийКак и в любом строительном процессе, существует несколько путей построения программных приложений. Подход, изложенный ниже, один из тех подходов к разработке приложений, который я с успехом использую на протяжении ряда лет. Первый шаг такого подхода - как можно лучше представить себе будущее приложение. Для этого необходимо ответить на следующие вопросы.
Рассмотрим возможные ответы на эти вопросы. Кто будет использовать приложениеЕсли вы будете точно знать будущего пользователя вашего приложения, то наверняка сможете определить, как оно должно выглядеть (внешний вид интерфейса) и каким быть "на ощупь" (степень сложности работы с интерфейсом). Если вы разрабатываете приложение для опытных пользователей Excel, то для ввода данных можно, например, использовать все возможности рабочего листа. Если же ваш будущий пользователь едва знаком с Excel, то для ввода данных лучше организовать специальную форму ввода. Откуда будут поступать данные для приложенияВозможны различные варианты ответа на этот вопрос. Данные уже находятся в некой рабочей книге; при каждой загрузке приложение должно работать с новыми данными; данные импортируются из внешней базы данных. Местоположение данных является одним из определяющих факторов при разработке приложения. Где и как будут храниться данные, полученные с помощью приложенияМогут быть следующие варианты ответа. Например, данные будут храниться в той же рабочей книге, где находится само приложение, либо в другой рабочей книге. А может, данные необходимо экспортировать во внешний файл, например Microsoft Access или Microsoft SQL Server? Если данные даже временно будут находиться в рабочей книге, то вы должны заранее создать эту рабочую книгу с соответствующей структурой рабочих листов. Как данные будут обрабатываться приложениемПо-другому этот вопрос можно сформулировать так: как ваше приложение будет манипулировать данными и как будет построен процесс анализа данных. Например, надо ли строить диаграммы на основе данных; какие вычисления необходимо выполнить над данными; нужно ли использовать сводные таблицы или сортировать данные. Ответив на подобные вопросы, вы сможете определиться с типом используемых рабочих листов, "зашив" в них необходимые формулы, и наметить последовательность действий, выполняемых над данными. Это, в свою очередь, позволит вам составить список макросов и процедур, которые нужно создать. Вид выходных данныхОтвет на этот вопрос приведет вас к необходимости разработки и создания другого множества рабочих листов, так как для каждого типа выходного отчета скорее всего потребуется свой рабочий лист. Ответы на все вышеперечисленные вопросы дадут вам информацию, необходимую для начала разработки приложения. Типы элементов управленияЭлементы управления можно вставлять как в рабочие листы, так и в экранные формы. Экранные формы (их также называют пользовательскими формами, от английского UserForm) - это окна (обычного вида, либо диалоговые), являющиеся частью интерфейса приложения. В экранную форму можно вставить больше разнообразных типов элементов управления, чем в рабочий лист. Мы сначала рассмотрим элементы управления, которые можно использовать совместно с рабочим листом (эти же элементы управления можно применять и в экранных формах).
Рис. 3.1. Панель инструментов с элементами управления, которые можно поместить на рабочий лист. Закройте все открытые рабочие книги и откройте новую рабочую книгу. Щелкните правой кнопкой мыши на любой панели инструментов и выберите в контекстном меню панели команду Формы. На экране появится панель инструментов Формы (рис. 3.1). На этой панели расположены 16 элементов управления, но только 9 из них сейчас доступны - это те элементы управления, которые можно использовать в рабочих листах. Первым на панели Формы расположен инструмент Надпись. Надпись - статическая область текста, обычно содержащая какую-либо поясняющую информацию, например к элементам интерфейса. На рис. 3.2 показан пример надписи. На этом рисунке проведена стрелка от инструмента Надпись панели Формы к надписи как объекту рабочего листа.
Рис. 3.2. Надпись - текст на рабочем листе, который располагается поверх ячеек Следующий элемент управления, который представлен на панели Формы, - Рамка. Рамка используется для визуального объединения каких-либо элементов управления в группу, показывая, что эти элементы связаны между собой. Чтобы увидеть пример использования рамки, выполните команду Файл > Печать и в диалоговом окне Печать обратите внимание на секцию Вывести на печать, где собраны переключатели, с помощью которых пользователь указывает, что именно надо вывести на печать (выделенный диапазон ячеек, выделенные рабочие листы или всю рабочую книгу). Рядом с инструментом Рамка на панели Формы находится инструмент Кнопка, с помощью которого в рабочий лист можно вставить командную кнопку. Этот элемент управления мы рассмотрели во 2-м часе "Работа с макросами". Командные кнопки широко используются в интерфейсах приложений и знакомы любому пользователю. В Windows вы на каждом шагу встречаетесь с такими кнопками, как ОК, Отмена, Да и Нет. Следующие два элемента управления, флажок и переключатель, используются в похожих ситуациях, когда пользователю надо сделать выбор из нескольких возможностей. И флажки, и переключатели работают как переключающие элементы, имеющие два устойчивых состояния: включено и выключено. На этом их подобие заканчивается. Если флажки, показанные на рис. 3.3, организованы в группу, то пользователь может установить в этой группе один, несколько или все флажки. В отличие от флажков, в группе переключателей (рис. 3.4) можно выбрать только один переключатель из группы. Обычно для организации флажков и переключателей в группу используется инструмент Рамка.
Рис. 3.3. Флажки используются для выбора одновременно нескольких вариантов из нескольких возможных
Рис. 3.4. Переключатели позволяют сделать только один выбор из нескольких возможных Список и поле со списком также предлагают несколько вариантов выбора. Допустим, пользователю надо выбрать определенный регион из набора регионов. Можно поместить этот набор регионов в элемент управления список (рис. 3.5), а оттуда затем выбрать нужный регион. Если поместить набор регионов в поле со списком (рис. 3.6), то кроме выбора из списка также можно ввести любое свое значение. Поле со списком - это просто комбинация списка и поля ввода. И список, и поле со списком работают как переключатели, позволяя выбрать или ввести только одно значение. Это замечание наталкивает на мысль, что если у вас есть группа из более чем трех переключателей, то эффективнее организовать выбор возможных вариантов с помощью списка, а не группы переключателей. Последние два элемента управления, которые можно поместить на рабочий лист, - полосы прокрутки и счетчик. Полосы прокрутки (рис. 3.7) как элементы управления - это не совсем то, чем вы привычно пользуетесь для прокрутки, например, рабочего листа. В данном случае полосы прокрутки применяются в качестве механизмов выбора. В графических программах вы, наверное, видели, как с помощью полос прокрутки можно выбрать цвет либо сделать изображение более светлым или более темным.
Рис. 3.7. Полосы прокрутки могут быть горизонтальными и вертикальными
Рис. 3.8. Счетчик - компактный элемент управления (щелкая на его кнопках со стрелками, вы можете ввести (выбрать) числовое значение) Счетчики (рис. 3.8) также можно рассматривать как средства выбора или как средства ввода числовых значений из заданного интервала. Если вы настраивали в Windows время и дату, то обязательно встречались со счетчиками. Вставка элементов управления в рабочий листЯ часто повторяю своим студентам, что если они могут нарисовать прямоугольник в программе Windows Paintbrush, то они имеют необходимый уровень подготовки для начала разработки интерфейса в среде Excel, - и то, и другое имеет примерно одинаковый уровень сложности. Чтобы проиллюстрировать это утверждение, опишем процесс вставки элемента управления в рабочий лист.
Как видите, процесс вставки элемента управления действительно почти не отличается от процесса рисования прямоугольника. Теперь опишем процесс вставки конкретных элементов управления в рабочий лист.
Рис. 3.9. Текст надписи располагается не в ячейках рабочего листа, а над ними
Рис. 3.10. Рабочий лист с вставленными элементами управления После вставки элементов управления в рабочий лист их можно переместить или изменить их размеры. Для этого прежде всего надо их выделить. Щелчком левой кнопкой мыши элементы управления выделить нельзя (за исключением надписи). Для выделения элемента управления надо щелкнуть на нем правой кнопкой мыши. Элемент управления перейдет в режим редактирования, и отобразится его контекстное меню. Если вам в данный момент не нужно контекстное меню, то закройте его, щелкнув левой кнопкой мыши на элементе управления. Выделенный элемент управления обрамляет широкая серая рамка. Для перемещения элемента управления установите указатель мыши на этой рамке, указатель при этом должен принять вид четырехнаправленной стрелки. Нажмите левую кнопку мыши и перетащите контур элемента управления в новое местоположение. Для изменения размеров элемента управления поместите указатель мыши на один из маркеров изменения размеров (маленьких квадратиках) обрамляющей рамки так, чтобы указатель принял вид двунаправленной стрелки. Нажмите левую кнопку мыши и перетащите указатель мыши, чтобы придать элементу управления нужный размер. Если вы хотите одновременно переместить или изменить размеры нескольких элементов управления, то сначала выделите один из них. Затем нажмите и удерживайте клавиши <Ctrl> и <Shift>, Щелкните на следующем элементе управления. Оба элемента будут выделены. Продолжайте удерживать клавиши <Ctrl> и <Shift> и щелкайте на тех элементах управления, которые нужно выделить. Форматирование элементов управленияВам, конечно, уже не терпится узнать, как можно использовать элементы управления, помешенные на рабочий лист. Можно назначить им макросы, как описано во 2-м часе. Но можно найти им и другое применение. Большинство элементов управления можно использовать для ввода значений в рабочий лист. Назначение задания элементу управления осуществляется путем его форматирования. Форматирование элемента управления позволяет изменить его внешний вид и определить его поведение. Для форматирования элемента управления выполните следующие действия.
Для тестирования состояния ячейки А1 можно использовать функцию Excel ЕСЛИ. Затем, в зависимости от значения этой ячейки, можно выполнить разные действия или вычисления. Например, если при установке флажка надо увеличить значение ячейки А4 на 20%, то можно воспользоваться формулой =ЕСЛИ(А1=ИСТИНА;А4*1,2;А4).
Рис. 3.11. Это диалоговое окно позволяет связать элемент управления и ячейку рабочего листа
Рис. 3.12. Вкладка элемент управления имеет разный вид для различных элементов управления
Имена элементов управленияПри создании элементов управления Excel присваивает им невыразительные названия, подобные Флажок 1 или Кнопка 7. Когда вы начнете писать код приложения, где используются элементы управления, вы должны будете отслеживать их применение с помощью имен. Поэтому желательно назначить элементам управления содержательные и узнаваемые имена. Многие разработчики при задании имен придерживаются специального соглашения об именах. В соответствии с этим соглашением в имя элемента управления вставляется префикс из трех букв, описывающий тип этого элемента. Например, если вы хотите дать флажку имя Приоритет, то в соответствии с указанным соглашением имя флажка будет записано как chkПриоритет, где префикс chk указывает на элемент управления флажок. В табл. 3.1 приведены общеупотребительные префиксы для имен элементов управления. (При написании кода VBA вам обязательно придется столкнуться с английскими названиями элементами управления, поэтому в таблице даны русские и английские названия элементов управления. - Прим. ред.) Таблица 3.1. Рекомендуемые префиксы для имен элементов управления
Командная кнопка и рамка имеют по два возможных префикса из-за того, что в Excel и Visual Basic они имеют разные названия. Командная кнопка в Excel называется button (кнопка), а в Visual Basic - command button (командная кнопка), в Excel рамка имеет название group box (групповая рамка) и frame (фрейм, рамка) - в Visual Basic. Наиболее употребительные для них префиксы соответственно cmd и fra. Имена элементам управления задаются точно так же, как ячейкам и диапазонам ячеек, - вводом имени в поле Имя в строке формул. Для задания имени элементу управления выполните следующие действия.
Экранные формыЕсли вы действительно хотите придать разрабатываемому приложению профессиональный вид или хотите облегчить будущему пользователю процесс ввода данных, то вам необходимо воспользоваться экранными формами. Экранные формы "работают" как обычные диалоговые окна. Элементы управления встраиваются в экранную форму точно так же, как и в рабочий лист. Но первым шагом на пути использования экранных форм является вставка самой экранной формы в ваше приложение. Для этого выполните следующие действия.
Созданная экранная форма имеет по умолчанию строку заголовка с заголовком UserForm1. Сетка на макете формы помогает размещению элементов управления, при отображении формы в приложении сетка не видна. При создании экранной формы автоматически отображается панель инструментов Панель элементов (рис. 3.14). На этой панели вы найдете уже знакомые вам элементы управления: надпись, флажок, переключатель и командная кнопка, а также несколько новых элементов. Выключатель (toggle button) - кнопка, которая остается нажатой после щелчка на ней, и возвращается в исходное состояние после повторного щелчка. Некоторые знакомые вам кнопки панелей инструментов Excel работают как переключатели, например кнопка Полужирный панели инструментов форматирования. Кнопка Полужирный запоминает щелчок на ней - она приобретает вид нажатой кнопки. Повторный щелчок на ней возвращает кнопку в исходное состояние.
Рис. 3.13. Экранная форма - заготовка для создания окна разрабатываемого приложения Набор вкладок (TabStrip) - элемент управления, который содержит одну или несколько вкладок. Этот элемент используется для организации в группы связанной информации. Например, можно применить набор вкладок для показа информации, относящейся к конкретным регионам (на каждой вкладке - отдельный регион). По умолчанию набор вкладок содержит две вкладки, помеченные как Таb1 и Таb2. При необходимости можно добавить новые или удалить ненужные вкладки. Набор страниц (MultiPage) - этот элемент управления внешне похож на набор вкладок и также содержит одну или несколько страниц. Отличие между ними заключается в том, что страницы являются формами, содержащими собственные элементы управления (включая наборы вкладок), которые можно отформатировать всеми средствами форматирования экранных форм. Хорошим примером набора страниц в Excel является диалоговое окно Параметры (открывается с помощью команды Сервис > Параметры).
Рис. 3.14. Панель элементов содержит элементы управления, которые можно использовать в экранной форме. Элемент управления Рисунок (Image) позволяет вставлять графические элементы в экранные формы. С помощью этого элемента можно вставлять изображения из графических файлов следующих типов:
Последний элемент управления на панели элементов - Поле со свертыванием (RefEdit). Этот элемент похож на обычное поле ввода, но имеет кнопку с правой стороны поля, которая сворачивает экранную форму, что позволяет легко выбрать любой диапазон ячеек на рабочем листе. На рис. 3.15 показана форма, содержащая поле со свертыванием. На рис. 3.16 представлена та же форма после щелчка на кнопке свертывания. Вы встречались с такими полями и такими кнопками свертывания окон, например, при вставке функций в формулы. Процесс вставки элементов управления в экранную форму ничем не отличается от процесса вставки элементов управления в рабочий лист. В экранной форме можно также перемещать или изменять размеры элементов управления. Кроме того, можно изменить размеры и самой экранной формы, перетащив ее маркеры изменения размеров. После успешного завершения разработки экранной формы можно просмотреть в действии полученный результат с помощью команды Run > Run Sub/UserForm (Выполнить > Выполнить процедуру/экранную форму). Форма отобразится поверх текущей рабочей книги (рис. 3.17). Щелчок на кнопке Закрыть (находится в верхнем правом углу формы) закроет экранную форму и возвратит вас в редактор Visual Basic. В последующих главах этой книги мы подробно рассмотрим применение экранных форм. Другой путь выполнения экранной формы - нажатие клавиши <F5>.
Рис. 3.15. Поле со свертыванием широко применяется в диалоговых окнах Excel, где необходимо задавать ячейки или диапазоны ячеек
Рис. 3.16. Свернутая экранная форма
Рис. 3.17. Выполнение экранной формы дает представление о том, как эта форма будет выглядеть в приложении РезюмеПосле этого часа вы имеете хорошую основу для начала разработки интерфейса любого приложения. Вы узнали, как вставлять элементы управления в рабочий лист, и познакомились с экранными формами. Теперь вы готовы приступить к программированию! Вопросы и ответыВопрос. Где более предпочтительно размещать элементы управления: на рабочем листе или на экранной форме? Ответ. Это зависит от ваших предпочтений и от уровня подготовки будущего пользователя вашего приложения. Если ваше приложение рассчитано на опытного пользователя Excel, то лучше разместить элементы управления непосредственно на рабочем листе. Если будущий пользователь малосведущ в Excel или вы хотите сделать приложение более автономным, расположите элементы управления в экранной форме. Вопрос. Когда следует использовать набор вкладок, а когда набор страниц? Ответ. Вы должны ответить на следующий вопрос: "Могу ли я для всех вкладок/страниц создать одинаковую структуру и внешний вид?" Если вы ответите "да", тогда используйте набор вкладок. В противном случае используйте набор страниц. ПрактикумС помощью тестов и упражнений вы проверите, насколько хорошо усвоили изложенный материал. Ответы на вопросы смотрите в Приложении. Тесты
УпражнениеОткройте новую рабочую книгу и вставьте в рабочий лист элементы управления, показанные на рис. 3.18. Задайте переключателям имена optМужчина и optЖенщина, а флажку - chkПример.
Рис. 3.18. Рабочий лист для упражнения |
||||||||||||||||||||||||||||||
[an error occurred while processing this directive] |