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

2313

.pdf
Скачиваний:
1
Добавлен:
15.11.2022
Размер:
1.4 Mб
Скачать

 

 

 

 

Продолжение табл. 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

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