2313
.pdf
|
|
|
|
Продолжение табл. 8.4 |
||
|
тель щелкает по кнопке, выполняется VBA- |
|||||
|
процедура, закрепленная за данным элемен- |
|||||
|
том управления |
|
|
|
||
TabStrip (набор |
Этот элемент управления состоит из облас- |
|||||
вкладок) |
ти, в которую следует помещать другие |
|||||
|
элементы управления (такие как текстовые |
|||||
|
поля, флажки и так далее). Используйте |
|||||
|
элемент управления TabStrip для создания |
|||||
|
диалоговых вкладок, отображающих одни и |
|||||
|
те же данные в различных категориях |
|||||
MultiPage (на- |
Этот элемент управления состоит из не- |
|||||
бор страниц) |
скольких страниц. Вы можете выбрать лю- |
|||||
|
бую из них, щелкнув по соответствующей |
|||||
|
вкладке. Используйте элемент управления |
|||||
|
MultiPage для создания диалоговых окон с |
|||||
|
вкладками, такими, например, как диалого- |
|||||
|
вое окно, появляющееся при выборе коман- |
|||||
|
ды Tools | Options (панели инструментов | |
|||||
|
настройка) |
|
|
|
|
|
ScrollBar (поло- |
Элемент |
управления |
|
ScrollBar |
позволяет |
|
са прокрутки) |
выбирать линейное значение, аналогично |
|||||
|
тому, как это можно сделать при помощи |
|||||
|
счетчика |
|
|
|
|
|
SpinButton |
Элемент |
управления |
SpinButton является |
|||
(счетчик) |
специальной |
разновидностью |
текстового |
|||
|
поля. Обычно счетчики используются для |
|||||
|
того, чтобы ввести число, дату или какие- |
|||||
|
либо иные последовательные величины, ко- |
|||||
|
торые заведомо находятся в определенном |
|||||
|
интервале значений. Щелчок по указываю- |
|||||
|
щей вверх стрелке счетчика увеличивает |
|||||
|
значение в окошке, а щелчок по стрелке, |
|||||
|
направленной |
вниз, |
соответственно, |
|||
|
уменьшает его |
|
|
|
|
133
|
Окончание табл. 8.4 |
Image (рису- |
Элемент управления Image позволяет вы- |
нок) |
вести на форме графическое изображение. |
|
Используйте Image для вывода графических |
|
изображений в любом из следующих фор- |
|
матов: *.bmp, *.cur, *.gif, *.ico, *.jpg, или |
|
*.wmf. Вы можете обрезать и масштабиро- |
|
вать графическое изображение, чтобы по- |
|
добрать размер элемента Image, но только |
|
не редактировать графическое изображение. |
|
Можно даже написать специальную VBA- |
|
процедуру, выполняющуюся, если пользо- |
|
ватель щелкнет по элементу управления |
|
Image |
Обращение к элементам управления выполняется, в основном, через их свойства и с помощью процедур обработки событий, написанных для каждого элемента. В табл. 8.5 перечислены наиболее часто используемые свойства элементов управления, которые могут понадобиться для работы с VBAпрограммами.
Таблица 8.5 Свойства стандартных элементов управления
Свойство |
Где |
Описание |
|
применяется |
|||
|
|
||
Accelerator |
CheckBox, Tab, |
Содержит символ, используе- |
|
|
CommandButton, |
мый, в качестве быстрой кла- |
|
|
Label, Page, Op- |
виши вызова, элемента управ- |
|
|
tionButton, Tog- |
ления. При «нажатии» Аlt+ |
|
|
gleButton |
<клавиша быстрого вызова> |
|
|
|
происходит выбор элемента |
|
|
|
управления |
|
BackColor |
Все элементы |
Число, представляющее опре- |
|
|
|
деленный цвет фона элемента |
|
|
|
управления |
134
Продолжение табл. 8.5
Caption |
CheckBox, |
Для надписи - текст, отобра- |
||||
|
CommandButton, |
жаемый, элементом управле- |
||||
|
Frame, Label, |
ния. Для других элементов |
||||
|
OptionButton, |
управления - надпись, которая |
||||
|
ToggleButton, |
появляется |
на |
кнопке |
или |
|
|
Page, Tab, User- |
вкладке или рядом с рамкой, |
||||
|
Form |
флажком или переключателем |
||||
Cancel |
CommandButton |
Задает кнопку отмены диало- |
||||
|
|
гового окна. При «нажатии» |
||||
|
|
на эту кнопку или клавишу |
||||
|
|
Esc диалоговое окно исчезает. |
||||
|
|
Только одна кнопка |
формы |
|||
|
|
может иметь данное свойство |
||||
ControlTip- |
Все элементы |
Определяет |
текст, |
который |
||
Text |
управления |
отображается в виде всплы- |
||||
|
|
вающей |
|
подсказки |
||
|
|
(ControlTip, называемой также |
||||
|
|
ToolTip), когда указатель мы- |
||||
|
|
ши помещается |
на |
элемент |
||
|
|
управления |
|
|
|
|
Default |
CommandButton |
Определяет |
заданную |
по |
||
|
|
умолчанию |
кнопку. |
Когда |
||
|
|
поль-зователь нажимает в |
||||
|
|
процессе диалога клавишу En- |
||||
|
|
ter, эта кнопка ведет себя так, |
||||
|
|
как если бы по ней щелкнули |
||||
|
|
мышью |
|
|
|
|
Enabled |
Все элементы |
Хранит |
значение |
|
типа |
|
|
управления |
Boolean, определяющее дос- |
||||
|
|
тупен или нет элемент управ- |
||||
|
|
ления. Если Enabled имеет |
||||
|
|
значение False, то элемент |
||||
|
|
управления |
продолжает |
ото- |
||
|
|
бражаться в диалоговом окне, |
||||
|
|
но не может быть выбран |
|
135
|
|
Продолжение табл. 8.5 |
||||
ForeColor |
Все элементы |
То же самое, что и BackColor, |
||||
|
управления |
но устанавливает цвет для пе- |
||||
|
|
реднего плана элемента управ- |
||||
|
|
ления - как правило, символов |
||||
|
|
текста |
|
|
|
|
List |
ComboBox, |
Массив типа Variant (одно- |
||||
|
ListBox |
или многомерный), представ- |
||||
|
|
ляет список |
содержащийся в |
|||
|
|
элементе управления. Исполь- |
||||
|
|
зуйте методы элемента управ- |
||||
|
|
ления AddItem и |
RemoveItem |
|||
|
|
для добавления или удаления |
||||
|
|
пунктов списка |
|
|
||
Max |
ScrollBar, Spin- |
Переменная типа Long, опре- |
||||
|
Button |
деляющая |
максимальное |
зна- |
||
|
|
чение счетчика, или значение, |
||||
|
|
при котором полоса прокрутки |
||||
|
|
находится в самом верху (для |
||||
|
|
вертикальной |
полосы) |
или |
||
|
|
справа (для горизонтальной) |
||||
Min |
ScrollBar, Spin- |
Переменная типа Long, опре- |
||||
|
Button |
деляющая |
минимальное |
зна- |
||
|
|
чение счетчика или значение, |
||||
|
|
при котором полоса прокрутки |
||||
|
|
находится в самом низу (для |
||||
|
|
вертикальной |
полосы) |
или |
||
|
|
слева (для горизонтальной) |
||||
Name |
Все элементы |
Содержит |
|
имя |
элемента |
|
|
управления |
управления. Вы можете уста- |
||||
|
|
новить данное свойство только |
||||
|
|
с помощью Properties Window. |
||||
RowSource |
ComboBox, |
Задает источник, из которого |
||||
|
ListBox |
ComboBox или ListBox «бе- |
||||
|
|
рет» список объекта. В Excel |
||||
|
|
VBA RowSource обычно ис- |
136
Продолжение табл. 8.5
|
|
пользует |
диапазон |
рабочего |
|
|
|
листа |
|
|
|
Selected |
ListBox |
Возвращает |
массив |
значений |
|
|
|
типа Boolean для списка, кото- |
|||
|
|
рый допускает множественный |
|||
|
|
выбор. Каждый элемент мас- |
|||
|
|
сива содержит по одному эле- |
|||
|
|
менту, соответствующему ка- |
|||
|
|
ждому пункту списка. Если |
|||
|
|
значение |
элемента в |
массиве |
|
|
|
Selected равно True, то соот- |
|||
|
|
ветствующий |
пункт |
списка |
|
|
|
выбран |
|
|
|
Tablndex |
Все элементы |
Число, указывающее положе- |
|||
|
управления |
ние элемента управления в по- |
|||
|
|
рядке табуляции (может иметь |
|||
|
|
значение от 0 до значения, |
|||
|
|
равного количеству элементов |
|||
|
|
управления на форме) |
|
||
TabStop |
Все элементы |
Значение типа Boolean, указы- |
|||
|
управления |
вающее |
может ли |
элемент |
|
|
|
управления быть выбран кла- |
|||
|
|
вишей Tab. Если значение |
|||
|
|
TabStop равно False вы, тем не |
|||
|
|
менее, можете щелкнуть на |
|||
|
|
элементе и таким образом его |
|||
|
|
выбрать |
|
|
|
Value |
Все элементы |
Значение |
текущих установок |
||
|
управления |
элемента управления: текст в |
|||
|
|
текстовом поле, какие выбра- |
|||
|
|
ны флажки и переключатели, |
|||
|
|
индекс |
выбранного |
раздела |
|
|
|
списка или число, указываю- |
|||
|
|
щее текущее положение поло- |
|||
|
|
сы прокрутки или счетчика |
137
|
|
Окончание табл. 8.5 |
Visible |
Все элементы |
Значение типа Boolean, указы- |
|
управления |
вающее, является ли элемент |
|
|
управления видимым |
В табл. 8.6 перечислены наиболее часто используемые события элементов управления, для которых вы можете написать собственные процедуры обработки событий. Каждый элемент управления, который вы добавите в свою форму, будет иметь доступ к этим событиям.
Таблица 8.6
События объектов управления
Событие |
Синтаксис процеду- |
|
Описание |
||
ры обработки |
|
||||
|
|
|
|
|
|
AddControl |
для элемента Frame: |
Инициируется |
всякий |
||
|
Private Sub object_ |
раз, когда к форме (или |
|||
|
AddControl () |
элементам Frame, Page, |
|||
|
для эл-та MultiPage: |
MultiPage) |
добавляется |
||
|
Private Sub object_ |
какой-либо |
|
элемент |
|
|
AddControl (index As |
управления |
|
|
|
|
Long, Ctrl As Control) |
|
|
|
|
AfterUpdate |
Private Sub ob- |
Инициируется |
после |
||
|
ject_AfterUpdate () |
обновления |
|
значения |
|
|
|
элемента управления |
|||
BeforeUp- |
Private Sub ob- |
Инициируется |
после |
||
date |
ject_BeforeUpdate |
того, как было изменено |
|||
|
(ByVal Cancel As |
значение элемента уп- |
|||
|
MSForms.ReturnBool |
равления, но перед тем, |
|||
|
ean) |
как |
был обновлен сам |
||
|
|
элемент управления |
|||
Change |
Private Sub object_ |
Инициируется |
всякий |
||
|
Change () |
раз, |
когда |
изменяется |
|
|
|
значение |
|
элемента |
|
|
|
управления |
|
|
138
Продолжение табл. 8.6
Click |
Private |
Sub object_ |
Инициируется |
всякий |
||
|
Click () |
|
раз, когда по элементу |
|||
|
|
|
управления |
|
щелкают |
|
|
|
|
мышью |
|
|
|
DblClick |
Private |
Sub object_ |
Инициируется |
всякий |
||
|
DblClick(ByVal Can- |
раз, когда по элементу |
||||
|
cel As MSForms. Re- |
управления |
|
дважды |
||
|
turnBoolean) |
щелкают мышью |
||||
Enter |
Private |
Sub object_ |
Инициируется |
всякий |
||
|
Enter () |
|
раз, когда |
выделяется |
||
|
|
|
элемент управления |
|||
Exit |
Private |
Sub object_ |
Инициируется |
всякий |
||
|
Exit (ByVal Cancel |
раз, когда с элемента |
||||
|
As MSForms. Return- |
управления |
снимается |
|||
|
Boolean) |
выделение |
|
|
||
Error |
Private |
Sub object_ |
Инициируется |
всякий |
||
|
Error (Index As Long, |
раз, |
когда |
|
элемент |
|
|
ByVal Number As |
управления |
обнаружи- |
|||
|
integer, ByVal De- |
вает ошибку и не может |
||||
|
scription As MSForms |
возвратить информацию |
||||
|
.ReturnString) |
об ошибке в вызываю- |
||||
|
|
|
щую программу |
|||
KeyDown |
Private Sub object_ |
Инициируется |
при на- |
|||
|
KeyDown (ByVal |
жатии |
пользователем |
|||
|
KeyCode As |
какой-либо клавиши в |
||||
|
MSForms.ReturnInteg |
тот момент, когда фор- |
||||
|
er, ByVal Shift As |
ма выполняется и имеет |
||||
|
fmShiftState) |
фокус |
|
|
|
|
KeyPress |
Private |
Sub object_ |
Инициируется, |
когда |
||
|
KeyPress (ByVal Key- |
пользователь |
|
нажимает |
||
|
ANSI As MSForms. |
алфавитно-цифровую |
||||
|
ReturnInteger) |
клавишу |
|
|
||
KeyUp |
Private Sub object_ |
Инициируется, |
когда |
|||
|
KeyUp (ByVal Key- |
пользователь |
отпускает |
|||
|
Code As MSForms. |
клавишу |
|
|
139
Окончание табл. 8.6
|
ReturnInteger, ByVal |
|
|
|
|
Shift As fmShiftState) |
|
|
|
Layout |
Private Sub object_ |
Инициируется, |
когда |
|
|
Layout () |
изменяются |
размеры |
|
|
|
элемента Frame |
(или |
|
|
|
MultiPage) |
|
|
MouseDown, |
|
Инициируются |
|
при |
MouseUp |
|
щелчке мышью. Mouse- |
||
|
|
Down: когда пользова- |
||
|
|
тель нажимает на кла- |
||
|
|
вишу мыши; MouseUp: |
||
|
|
когда пользователь |
от- |
|
|
|
пускает клавишу мыши |
8.6. Использование Toolbox (панели элементов)
Редактор VB в режиме разработки вместе с формой выводит на экран Toolbox (панель элементов) (если вывод этой панели не отключен при помощи меню View | Toolbox). На рисунке панель элементов Toolbox показана в виде плавающего окна. Кнопки на панели Toolbox активизируют различные инструменты, которые позволяют помещать на форму элементы управления.
Панель Toolbox
Вы можете изменить размер самой формы. Щелкните по строке заголовка Формы для ее выделения и затем, перемещая один из маркеров изменения размеров, увеличьте или уменьшите размер формы до желаемого. Маркеры изменения размеров (sizing handles) — это маленькие квадратики, которые появляюся в углах и на серединах сторон графического объекта (наряду с толстой серой границей) при выделении объекта.
140
8.6.1. Выделение, перемещение и изменение размера элементов управления на форме
Поместив на форму элемент управления, вы имеете возможность изменять его размеры, двигать, копировать, удалять, форматировать (изменять размер, стиль, гарнитуру шрифта) или изменять его свойства (такие как имя, заголовок и т.д.).
Чтобы отредактировать элемент управления, вы должны сначала выделить его щелчком мыши. Выделенный элемент имеет серую границу с маркером изменения размеров, как показано для кнопки на рис. 8.1. Чтобы выделить несколько элементов управления сразу, удерживайте нажатой клавишу Shift, когда щелкаете по элементам управления, которые хотите выделить. Выделять сразу несколько элементов управления имеет смысл, если вы хотите выполнить форматирование, которое будет распространяться на все элементы формы. Это может быть, например, изменение размера шрифта, стиля. Выбор нескольких элементов управления может также оказаться полезным, если вы хотите переместить эти элементы одновременно.
Вы можете временно сгруппировать несколько элементов управления, пользовавшись командой Format | Group (Формат | Группировать). Если элементы управления сгруппированы, они ведут себя как один объект, когда выбираете, перемещаете, копируете или редактируете. Элементы управления остаются сгруппированными до тех пор, пока вы не примените к выделенной группе команду Format | Ungroup (Формат | Разделить).
Чтобы переместить элемент управления на новое место в форме, сначала выделите его. После этого поместите указатель мыши поверх любой части серой границы, окружающей выбранный элемент управления, за исключением маркеров изменения размеров. Теперь щелкните и перетащите этот элемент на новое место.
Чтобы изменить размер элемента управления, сначала выделите этот элемент. После этого поместите курсор мыши поверх любого из маркеров изменения размеров. Когда курсор находится на маркере изменения размера, oн меняет свою
141
форму на двойную стрелку, показывающую направление, в котором вы можете изменять размер выбранного элемента управления. Теперь нажмите (не отпуская) кнопку мыши и передвиньте маркер изменения размера на нужное место. В процессе перемещения редактор VB будет отображать контур, показывающий новые границы элемента управления. Когда элемент управления станет требуемого размера, отпустите кнопку мыши, редактор VB перерисует элемент управления в соответствии с вновь заданным размером.
8.6.2. Копирование, вставка и удаление элементов управления
Один из самых простых способов создать несколько одинаковых элементов управления, таких как несколько флажков или кнопок, состоит в том, чтобы сначала создать один элемент управления, скопировать его, после чего поместить скопированный элемент в форму столько раз, сколько необходимо. Чтобы скопировать элемент управления, просто выберите его и затем воспользуйтесь командой Edit | Сору (Правка | Копировать) или нажмите Ctrl+C.
После того как элемент управления скопирован, вы можете вставить его в ту же или другую форму, используя команду Edit | Paste (Правка | Вставить) или нажав Ctrl+V. После выполнения операции вставки переместите элемент управления в предназначенное для него место.
Чтобы удалить элемент управления, выделите его, после чего нажмите клавишу Delete. Редактор VB удалит выделенный элемент управления.
8.6.3. Редактирование или форматирование заголовков элементов управления
Для редактирования текста заголовков таких элементов управления, как кнопка, переключатель или флажок, просто щелкните по этому тексту. Редактор VB поместит в текст заголовка курсор вставки. Теперь можно редактировать текст, используя любые стандартные команды редактирования текста
142