Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы программирования на VBA для Microsoft Excel. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
783 Кб
Скачать

Использование всплывающих подсказок к элементам управления

При работе с панелями элементов управления удобно иметь поясняющие сведения к элементам управления.

Для напоминания о назначении элементов управления им назначают всплывающие подсказки (примечания), возникающие при наведении указателя на объект.

Для отображения всплывающих подсказок необходимо дать команду Сервис/ Настройка/ Параметры и установить флажок Отображать подсказки для кнопок.

Группирование элементов управления

Схожие по смыслу элементы управления (например, переключатели) можно объединять в группы. Группировка улучшает внешний вид интерфейса и позволяет быстрее ориентироваться в нем.

Графическим объектом, с помощью которого выполняется визуальная группировка элементов управления, является объект Рамка, служащий контейнером для других объектов.

Объект Рамка присутствует на панели Форма. Этот же объект с именем Frame можно найти и на панели Toolbox редактора VBA.

Процесс группирования состоит в следующем:

1)на рабочем листе или на форме создается объект Рамка (Frame);

2)в Рамку помещаются требуемые элементы управления;

3)с помощью клавиши Ctrl выделяются все элементы управления, включая рамку;

4)в контекстном меню выбираем пункт Группировка/ Группиро-

вать.

Внешний вид объекта Рамка со встроенными в него объектами типа Переключатель показан на рис. 6.

Рис. 6. Группировка элементов управления с помощью объекта Рамка

71

4.ОСНОВЫ РАЗРАБОТКИ ПРИЛОЖЕНИЙ

ВMS EXCEL

Создание и использование форм

Форма – это важнейший визуальный компонент приложения. Она представляет собой видимое окно, подобное окнам операционной системы Windows, где размещаются визуальные компоненты, образующие интерфейс приложения.

Таким образом, форма служит контейнером для всех других компонентов. На основе формы начинается конструирование приложения.

Программы, написанные на VBA, могут входить в состав форм (UserForm), стандартных модулей (Module) и модулей классов (Class).

Создание нового приложения в редакторе VBA начинается с вставки пустой формы командой Insert/ UserForm. Эту команду можно дать из панели меню VBA или из контекстного меню окна проекта.

Вместе с формой на экране появляется панель инструментов (Toolbox) с набором элементов управления. Панель инструментов отображается при условии, что форма активна. Активизируется форма щелчком мыши на графическом изображении формы.

Панель инструментов содержит пиктограммы элементов управления, которые могут быть помещены на форму, а также кнопку со стрелкой для выбора добавленных на форму объектов.

Каждое приложение имеет несколько форм. Форма может быть модальной и немодальной. Немодальная форма позволяет переключиться в другую форму приложения без своего закрытия. Модальная форма, наоборот, требует обязательного закрытия перед обращением к любой другой форме приложения. Сделать форму модальной можно так:

ShowModal = True

Основные сведения о формах. Характеристики формы

Форма представляет собой обычное окно, содержащее вверху строку заголовка. На форме присутствует кнопка Закрыть, но нет кнопок Свернуть и Развернуть и нет меню управления.

Как и любой объект, форма имеет свойства, методы и события. Например, форма имеет такие общие для объектов свойства, как Caption, Name. Кроме этого, форма может иметь собственные специфические свойства, методы и события.

72

При создании формы выполняется код ее инициализации, устанавливающий начальные значения свойств формы и ее управляющих элементов. Кроме того, выполняются дополнительные операции, которые происходят однократно при создании формы (например, чтение данных и загрузка их в список). Код инициализации прописывается в процедуре

UserForm_initialize(),

которая является частью программного кода формы.

Окно кода формы можно получить, нажав клавишу F7. Обратный переход на форму обеспечивается комбинацией клавиш Shift+F7. Отобразить форму на экране можно также двойным щелчком мыши на имени формы в окне проводика проекта или с помощью команды ме-

ню View/ Object.

При создании форма может получить новый заголовок, в комбинированный список ComboBox могут быть загружены данные из ячеек электронной таблицы, а командная кнопка может быть заблокирована.

Пример такой инициализации формы выглядит следующим образом:

Private Sub UserForm_initialize() UserForm1.Caption = "Сотрудники" ComboBox1.RowSource = "a1: a5" CommandButton1.Enabled = False

End Sub

Формы по мере необходимости можно отображать и скрывать, назначая методы Show или Hide. Процедура Show отображает форму в немодальном режиме, а сама форма переводится на передний план. Процедура Hide скрывает форму. Отображением формы можно также управлять, назначая свойству Visible значения True или False.

Даже если форма не видима, ее компонентами можно управлять, например, из других форм. Если форма уже видима, то вызов метода Show переводит форму на передний план и передает ей фокус управления.

При нажатии кнопки мыши в области формы происходит ее активизация и форме передается фокус управления. При потере фокуса формой происходит ее деактивизация.

Для настройки свойств формы и элементов управления удобно применять панель свойств. Это позволит уменьшить объем программ-

73

ного кода. Окно свойств формы, как и любого другого выделенного объекта формы, можно получить, нажав клавишу F4 либо выбрав пункт Properties в контестном меню выделенного объекта.

Большинство свойств форм относится к их внешнему виду, размерам и местонахождению окон. Однако существуют и свойства, определяющие другие характеристики форм. Наиболее важные свойства форм представлены в табл. 7.

 

Т а б л и ц а 7

 

Свойства форм

 

 

Свойство

Описание

Name

Определяет имя формы

Caption

Определяет заголовок формы

Enabled

Определяет доступность, значения – True или False

ShowModal

При установке в True нельзя перейти к другим формам

Основные методы и события форм приведены в табл. 8 и 9.

 

 

Т а б л и ц а

8

 

 

Методы форм

 

 

 

 

 

Вызов метода

 

Описание

 

UserForm1.Show

 

Отобразить форму

 

UserForm1.Hide

 

Скрыть форму

 

Unload UserForm1

 

Удалить форму из памяти

 

Copy(),Cut(),Paste()

 

Обмен данными через буфер обмена

 

 

 

Т а б л и ц а

9

 

 

События форм

 

 

 

 

 

Событие

 

Описание

 

Initialize

Инициализации формы при подготовке ее к открытию

 

Click и DblClick

Реакция на одиночный или двойной щелчок мыши

 

Error

Возникает при обнаружении ошибки

 

Terminate

Возникает при нормальном завершении работы формы

 

Так как форма служит контейнером для хранения других элементов управления, то главное ее событие – это Initialize. Все остальные события обычно используются не для формы, а для расположенных на ней элементов управления.

74

Форма как контейнер содержит в себе другие управляющие элементы, которые могут получать фокус ввода (фокус). Метод SetFocus позволяет передать фокус управления элементу на форме. Например, для того чтобы передать фокус управления элементу TextBox2, используется следующий фрагмент кода:

TextBox2.SetFocus

Свойство ScrollBars отвечает за отображение на форме полос прокрутки и может принимать четыре значения: 0, 1, 2, 3. Если ScrollBars = 0, полосы прокрутки не отображаются. Значение 1 соответствует отображению горизонтальной, а значение 2 – вертикальной полосы прокрутки. Если ScrollBars = 3, отображаются обе полосы прокрутки.

Для обеспечения автоматического вывода списка всех свойств и методов выбранного объекта нужно дать команду меню Tools/ Options и в появившемся окне Options установить галочку в пункте Auto List Members.

Если эта опция включена, то после ввода имени объекта и точки будет выводиться весь список его методов и свойств.

Для обращения к текущей форме вместо ее имени можно использовать ключевое слово Me. Точка, установленная после этого слова, приводит к выводу методов и свойств текущей формы.

Свойства и методы имеют разные иконки, по которым их можно

раличать. Например, иконка обозначает свойство, а иконка – метод.

В верхней части окна редактирования кода формы находятся два раскрывающихся списка. В левом списке отображены имена объектов, которые в данный момент находятся на форме, и объект UserForm, т. е. сама форма.

Если в левом списке выбрать объект, то в правом списке будут отображены доступные события этого объекта. После выбора события в окне кода появится заготовка процедуры обработки этого события.

Элементы управления и их применение

Элементы управления – это объекты, которые можно размещать на формах VBA и на документах MS Office, в частности на листах книги

Excel.

75

Эти элементы используются для управления работой приложения со стороны пользователя. Они реагируют на события, которые возникают при нажатии на кнопку, при вводе значений и т. д. Большинство элементов управления имеет графическое представление.

В VBA используется широкий набор стандартных элементов управления, которые имеют различное назначение. Часто используемые элементы приведены в табл. 10.

 

 

 

Т а б л и ц а 10

 

 

Элементы управления

 

 

 

 

Тип элемента

Вид

 

Описание

 

 

 

 

Label

 

 

Надпись (Поле для вывода текста)

 

 

 

 

TextBox

 

 

Текстовое поле (Поле для ввода текста с воз-

 

 

 

можностью его редактирования)

 

 

 

 

ComboBox

 

 

Комбинированный список выбора (Поле с рас-

 

 

 

крывающимся списком)

 

 

 

 

ListBox

 

 

Список (Список выбора)

 

 

 

 

CheckBox

 

 

Флажок (Независимая кнопка выбора)

 

 

 

 

OptionButton

 

 

Переключатель (Зависимая кнопка выбора)

 

 

 

 

ToggleButton

 

 

Выключатель

 

 

 

 

Frame

 

 

Группа

 

 

 

 

CommandButton

 

 

Командная кнопка

 

 

 

 

TabStrip

 

 

Набор вкладок

 

 

 

 

MultiPage

 

 

Набор страниц

 

 

 

 

ScrollBar

 

 

Полосы прокрутки

 

 

 

 

SpinButton

 

 

Счетчик

 

 

 

 

Image

 

 

Рисунок

 

 

 

 

76

Для добавления элементов управления на форму используется панель инструментов ToolBox. По умолчанию эта панель отображается при вставке новой формы командой Insert/ UserForm. Манипулировать ее отображением и скрытием можно командой View/ Toolbox.

Панель ToolBox содержит шаблоны объектов. Выделив один из шаблонов, можно по нему создать соответствующий объект на форме. Наборы однотипных объектов создаются путем копирования существующего объекта в буфер обмена и вставки его копии в форму.

При создании объектов на форме им присваиваются стандартные имена типа Label1, Label2, TextBox1, TextBox2 и т. д. Для изменения имен управляющих элементов нужно в свойстве Name окна свойств соответствующего объекта затереть старое имя и указать новое. Окно свойств выбранного объекта можно отобразить, нажав клавишу F4 или командой меню View/ Properties Window.

Аналогичным образом можно изменять и надписи объектов, используя свойство Caption. Установить значение свойства можно и программно, например:

Label2.Caption="Итого:"

Программно можно получить также значение свойства, например:

TextBox2= Label2.Caption

Некоторые объекты имеют свойство Value. Это свойство можно также использовать для установки и получения значений полей.

Пример установки значения объекта:

TextBox2.Value = 123

Пример получения значения объекта:

Label2.Caption = TextBox2.Value

Свойство Value имеет тип Variant.

Элемент управления Label (Надпись)

Используется для вывода сообщения на форме, в частности для надписей тех объектов, у которых нет собственного свойства Caption, например, как у объекта TextBox. Надпись обычно располагается рядом с объектом и указывает его назначение. Caption – cамое главное свойство надписи, оно задает текст, который выводится на форме.

77

По умолчанию надписи имеют имена Label1, Label2 и т.д. Имя надписи можно изменить, заменив в окне свойств значение свойства Name на новое. Текст надписи можно задать с помощью свойства Caption, например:

Label2.Caption="Итого: "

Элемент управления TextBox (Текстовое поле)

Этот объект предназначен для ввода информации во время работы программы или вывода информации, задаваемой его свойством Text. При значении свойства Enabled=False информацию в текстовом поле изменить нельзя. Редактировать значение текстового поля можно, если свойство Enabled принимает значение True. Это значение устанавливается по умолчанию.

По умолчанию текстовые поля имеют имена TextBox1, TextBox2 и т. д. Другое имя текстового поля можно задать в окне свойств Properties Window этого объекта с помощью свойства Name.

Свойство Visible отвечает за отображение объекта на форме. Для скрытия объекта это свойство должно принять значение False, например:

TextBox1.Visible = False

Отображаемый объект имеет значение этого свойства True: TextBox1.Visible = True

Для автоматического изменения размеров объекта на форме в зависимости от длины введенного текста свойство Autosize должно иметь значение True:

TextBox1. AutoSize= True

Если размеры объекта менять не нужно, то свойство AutoSize следует установить в False.

Свойства объектов можно устанавливать программно, как это сделано здесь, так и с помощью окна свойств объекта (Properties Window).

Элемент управления ComboBox (Поле со списком)

Этот объект содержит поле и раскрывающийся список и позволяет выбрать в поле необходимый элемент из списка или ввести информацию в поле вручную. Текущее значение в объекте ComboBox отобра-

78

жается в поле, а значения элементов списка выводятся при нажатии кнопки со стрелкой.

По умолчанию свойство Style этого объекта принимает значение 0. В этом случае данные в поле могут быть введены пользователем и применены либо как критерий выбора элементов в списке, либо как новое значение, не содержащееся в списке. Данные в поле можно и не вводить, а выбрать из раскрывающегося списка.

Второе значение, которое может приобрести свойство Style, равно цифре 2. Программно установить это значение можно оператором ComboBox.Style=2. Напомню, что устанавить значение можно и в окне свойств (Properties Window).

При значении ComboBox.Style=2 в поле можно выбрать данные только из списка. Ввести новые данные или изменить выбранные данные в поле нельзя. Для выбора элемента нужно открыть список, нажав на кнопку со стрелкой, и указать требуемый элемент.

Для заполнения списка применяется метод AddItem. Например, добавить элемент в список можно так:

ComboBox1.AddItem "Январь"

Индексация элементов в списке начинается с нуля. Получить значение индекса элемента, находящегося в поле ComboBox, можно, используя свойство Value или ListIndex. Примеры:

TextBox1 = ComboBox1.Value TextBox1 = ComboBox1.ListIndex

При использовании свойства Text можно получить значение не индекса элемента, а самого выбранного элемента списка. Пример:

TextBox1 = ComboBox1.Text

Элемент управления ListBox (Список)

Этот элемент используется для хранения списка значений, из которого можно выбрать один или несколько элементов. Этим он отличается от элемента ComboBox, где можно выбрать только один элемент.

По умолчанию спискам назначаются имена ListBox1, ListBox2 и т. д. В зависимости от значения свойства MultiSelect, равном 0, 1 или 2, в списке можно выбрать соответсвенно один элемент, несколько последовательно расположенных элементов или несколько произвольно расположенных элементов.

79

Примеры программной установки вариантов выбора элементов из списка:

ListBox1. MultiSelect=0

ListBox1. MultiSelect=1

ListBox1. MultiSelect=2

Часто используемые свойства списка приведены в табл. 11.

 

Т а б л и ц а 11

 

Свойства списка

 

 

ListIndex

Возвращает номер текущего элемента списка

ListCount

Возвращает общее количество элементов в списке

TopIndex

Возвращает элемент списка с наибольшим номером

ColumnCount

Устанавливает число столбцов в списке

TextColumn

Устанавливает столбец в списке

Text

Возвращает выбранный в списке элемент

List (row, column)

Возвращает элемент списка

RowSourse

Устанавливает диапазон, содержащий элементы списка

ControlCourse

Устанавливает диапазон (ячейку), куда возвращается

 

выбранный элемент из списка

MultiSelect

Устанавливает способ выбора элементов списка

Для добавления в список новых элементов применяется метод AddItem. Например, добавить элемент в список можно так:

ListBox1.AddItem "Январь"

Для удаления элемента из списка используется метод RemoveItem, например:

ListBox1.RemoveItem 0,

где 0 – это индекс элемента в списке.

Элемент управления CheckBox (Флажок)

Этот элемент имеет свойство Value, которое может принимать значения True или False. Значению True соответствует наличие флажка в средине квадрата, который визуально представляет объект CheckBox. Отсутствие флажка соответствует значению False. Щелчки по элементу позволяют переводить его из состояния True в состояние False и наоборот.

80

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]