Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование VBA.pdf
Скачиваний:
374
Добавлен:
03.05.2015
Размер:
3.07 Mб
Скачать

68

MsgBox “R=” & r End Sub

После закрытия формы при помощи процедуры

Private Sub Выйти_Click()

Unload Me

End Sub

кнопкой Выйти на экран будет выведено значение переменной r.

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

Элемент управления Флажок (CheckBox) дает возможностьыклзователю осуществить выбор типа Да/Нет. Можно создать группу элементов, причём выбор значений для всех флажков в этой группе не зависит друг от друга. Вид элемента приведен на рис. 25.

Рис. 25. Элемент Флажок Основные свойства элемента Флажок:

Caption: надпись, которая выводится рядом с элементом. Value: True – флажок установлен;

False – флажок не установлен.

Основное событие для этого элемента – Click. Оно возникает при изменении свойства Value с помощью мыши или программно. Ниже приведены процедуры, обрабатывающие событие Click. Если установлен флажок “Да”, то выводится сообщение “да”, а если “Нет”, то – “нет”.

Private Sub CheckBox1_Click()

If UserForm1.CheckBox1.Value = True Then MsgBox “да”

End Sub

Private Sub CheckBox2_Click()

If UserForm1.CheckBox2.Value = True Then MsgBox “нет”

End Sub

2.11.2.7. Элемент управления ToggleButton (Выключатель)

Элемент Выключатель (ToggleButton) предназначен для тех же целей, что и элемент Флажок, но имеет вид кнопки, находящейся в “нажатом” (утопленном) или “отжатом” (отпущенном) состоянии. На рис.26 выключатель “Первый” включен (значение свойства Value = True), аыклюючатель “Второй” – отключен (значение свойства Value = False). Могут быть нажатыми несколько выключателей.

69

Рис. 26. Элемент Выключатель Основные свойства элемента Выключатель:

Caption: надпись, которая выводится на элементе. Value: True – выключатель установлен;

False – выключатель не установлен.

Основное событие для этого элемента – Click. Оно возникает при изменении свойства Value с помощью мыши или программно. Ниже приведены процедуры, обрабатывающие событие Click. Если нажат выключатель “Первый”, то выводится сообщение “ Первый ”, а если “Второй”, то – “Второй”.

Private Sub ToggleButton1_Click()

If UserForm2.ToggleButton1.Value = True Then MsgBox “Первый”

End Sub

Private Sub ToggleButton2_Click()

If UserForm2.ToggleButton2.Value = True Then MsgBox “Второй”

End Sub

2.11.2.8. Элемент управления OptionButton (Переключатель)

Элементы Переключатели (OptionButton) предназначены для выбора одного из двух взаимоисключающих значений: True (“Выбран”) и False (“Не выбран”) (рис.27). Они обычно объединяются в группу. При выборе нужного элемента остальные элементы в группе автоматически устанавливаются в состояние “Не выбран”.

Рис. 27. Элемент Переключатель

Для объединения переключателей в группу можно использовать элементы-контейнеры, например, Рамка. Если группа одна, то контейнером может служить форма. Основные свойства элемента Переключатель:

Caption: надпись, которая выводится на элементе. Value: True – переключатель установлен;

False – переключатель не установлен.

Основное событие элемента Переключатель – Click. Оно возникает при изменении значения свойства Value. В группе переключателей событие возникает только для того элемента, чье значение становится True.

70

2.11.2.9. Элемент управления Image (Рисунок)

Элемент Рисунок (Image) предназначен для вывода содержимого графических файлов в форме. Элемент не позволяет редактировать рисунок. Поддерживаются следующие форматы файлов: *.bmp, *.cur, *.gif, *.ico, *.jpg, *.wmf.

2.11.2.10.Элемент управления ScrollBar (полоса прокрутки)

Полоса прокрутки (ScrollBars) используется в текстовых полях, когда введенный текст полностью на экране не умещается. ScrollBar можно использовать как отдельный элемент управления для выбора значения из диапазона. Обычно такой элемент управления используется для выбора плавно меняющихся значений.

Главное событие для этого элемента управления – Change.

Наиболее часто используемые свойства элемента ScrollBars.

Max и Min – максимальное и минимальные значения, которые можно задать при помощи этого элемента управления. Возможный диапазон – от

-32 767 до +32 767.

LargeChange и SmallChange – величина шага ползунка при перемещении его пользователем путем щелчка на полосе ниже ползунка или при нажатии на кнопку направления соответственно.

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

ProportionalThumb – определяет размер ползунка: будет ли он пропорционален размеру полосы прокрутки (по умолчанию) или фиксированного размера.

Value – главное свойство этого элемента управления. Определяет положение ползунка и то значение, которое будет возвращать этот элемент управления программе.

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

Private Sub ScrollBar1_Change()

Label1.Caption = ScrollBar1.Value End Sub

В более сложном варианте пользователь может выбирать: использовать ползунок или вводить значение в тестовом поле.

71

2.11.2.11.Элемент управления SpinButton (Счётчик)

Элемент управления SpinButton (Счётчик)– эта та же полоса прокрутки, но без самой полосы и ползунка. SpinButton используется в тех ситуациях, когда диапазон выбираемых значений небольшой. Все свойства, имеющиеся у SpinButton, совпадают со свойствами ScrollBar.

При щелчке на соответствующей стрелке изменяется значение самого элемента, но внешне это никак не выражается. Изменять значение другого элемента с помощью элемента Счетчик можно программно.

2.11.2.12.Элемент управления RefEdit (Поле со свёртыванием)

Элемент управления RefEdit (Поле со свёртыванием) аналогичен полю ввода, но позволяет вводить в него ссылку на диапазон выбором на рабочем листе. Свойство Value возвращает эту ссылку.

В качестве примера1 использования элемента управления RefEdit используем проект, определяющий некоторые статистические параметры диапазона, а именно максимальное, минимальное значения и сумму всех значений ячеек этого диапазона. Создаётся форма, на которой расположены две кнопки: CommandButton1 и CommandButton2 и элемент управления RefEdit (рис. 30). Кнопка CommandButton1 предназначена для задания значения диапазона элемента управления RefEdit, а кнопка CommandButton2 – для выгрузки формы. Форма, приведённая на рис. 31, загружается при выполнении процедуры СТАТИСТИКА2:

Sub СТАТИСТИКА2() СТАТИСТИКА.Show End Sub

находящейся в стандартном модуле Module1.

Рис. 28. Проект формы

Рис. 29. Загруженная форма

1 При разработке примера использованы материалы из кн.: Гарнаев А.Ю. MS Excel 2002: разработка приложений. – СПб.: БХВ-Петербург, 2003. – C. 391–392.

72

Для задания диапазона необходимо сделать активным окно элемента управления RefEdit и выделить нужный диапазон Лист1!$A$14:$A$17 (рис. 32). При выделении диапазона размер формы уменьшается, открывая ячейки для его выделения. Отсюда название элемента “Поле со свёртыванием”.

Рис. 30. Выделение диапазона

При нажатии на кнопку ok выполняется следующая процедура модуля формы.

Private Sub CommandButton1_Click() Dim r As String

Dim min As Double, max As Double, s As Double r = RefEdit1.Value

Dim rgn As Range Set rgn = Range

min = WorksheetFunction.min(rgn) max = WorksheetFunction.max(rgn) s = WorksheetFunction.Sum(rgn)

MsgBox RefEdit1.Value & vbCr & _ “min=” & min & vbCr & _ “max=” & max & vbCr & _ “s=” & s

End Sub

В этой процедуре инструкция r = RefEdit1.Value присваивает переменной r значение ссылки на диапазон, инструкция Dim rgn As Range объявляет переменную rgn как объект Range, а инструкция Set rgn = Range® присваивает значение ячеек выбранного диапазона переменной rgn.

Значения свойства Caption формы (Статистика), кнопки

CommandButton1 (ok) и кнопки CommandButton2 (Выйти) задаются при инициализации следующей процедуры модуля формы:

Private Sub UserForm_initialize()

Me.Caption = “Статистика”

CommandButton1.Caption = “ok”

CommandButton2.Caption = “Выйти”

End Sub

Удаление формы из памяти осуществляется при нажатии кнопки “Выйти”. При этом возникает событие Click, обрабатываемого следующей процедурой формы: