Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
101
Добавлен:
02.04.2015
Размер:
2.05 Mб
Скачать

Удаление элементов списка

для этого используется метод RemoveItem объекта ListBox:

ListBox.RemoveItem (индекс_пункта)

Пример программы полной очистки списка:

Public Sub PopulateEmptyList()

For i = 0 To (ListBox1.ListCount-1)

ListBox1.RemoveItem i

Next

End Sub

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

Типы полей со списком

В VBA имеется два типа элементов управления ComboBox. С помощью объектов первого типа можно ввести в поле данные, которые потом можно использовать как:

  • Критерий выбора элементов в списке. При вводе символов, совпадающих с существующим пунктом списка, осуществляется перемещение на этот пункт. При этом используются свойства MatchEntry и MatchRecquired.

  • Новое значение. В программе необходимо специально предусмотреть случай, когда введенного значения не имеется в списке.

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

Тип объекта ComboBox можно указать с помощью свойства Style, допустимые значения которого приведены в таблице:

Тип

Значение

Константа

Ввод данных

0

FmStyleDropDownCombo

Выбор значения из списка

2

FmStyleDropDownList

Заполнение поля со списком

Для заполнения элемента управления ComboBox используется метод AddItem. Для данного метода требуется задать параметр, который определяет требуемый пункт:

ComboBox.AddItem строка_элемента

Пример программы добавления в список новых элементов:

Public Sub PopulateList()

ComboBox1.AddItem "125%"

ComboBox1.AddItem "100%"

ComboBox1.AddItem "80%"

ComboBox1.AddItem "50%"

ComboBox1.AddItem "12%"

End Sub

Установка и получение значения поля со списком

Чтобы получить или установить значение, хранящееся в текстовой части поля со списком, используется свойство Text объекта ComboBox. При присваивании значения данному свойству автоматически выполняются следующие действия:

  • Заданный текст выводится в поле. Однако, если заданное значение не является элементом списка, то отображается сообщение об ошибке.

  • Свойству ListIndex объекта ComboBox присваивается индекс элемента списка, соответствующего заданному значению.

Например, следующая программа выводит слово "красный" в окне отладки:

Private Sub UseForm_Click()

ComboBox1.AddItem "зеленый"

ComboBox1.AddItem "синий"

ComboBox1.AddItem "красный"

ComboBox1.AddItem "белый"

ComboBox1.Text ="красный"

I= ComboBox1.ListIndex

Debug.Print ComboBox1.List ( I )

End Sub

Чтобы получить значение, содержащееся в поле со списком, используются свойства Text или Value.

Например, следующая программа выводит слово "красный " в окне отладки дважды:

Private Sub UseForm_Click()

ComboBox1.AddItem "зеленый"

ComboBox1.AddItem "синий"

ComboBox1.AddItem "красный"

ComboBox1.AddItem "белый"

ComboBox1.ListIndex = 3

Debug.Print ComboBox1.Text

Debug.Print ComboBox1.Value

End Sub

Элемент управления CheckBox (Флажок) создает ячейку, которая может быть помечена пользователем, как имеющая значение истина или ложь. Флажок представляет собой маленький квадрат, с которым связан заголовок. Если квадрат пуст, то при щелчке по нему появляется галочка, и наоборот, если квадрат помечен галочкой, то при щелчке по нему галочка исчезает. Элемент управления CheckBox может иметь три состояния (ложь, истина и неопределенное значение). Неопределенному значению флажка с тремя состояниями соответствует значение Null.

Установка заголовка флажка

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

Если заголовок флажка имеет большую длину, то можно присвоить свойству WordWrap значение True, чтобы разместить текст надписи в нескольких строках.

Определение состояния флажка

Для этого используют свойство Value, значение которого показывает, установлен флажок (True) или нет (False). Состояние флажка обычно используется в процедуре обработки события флажка Нажатие кнопки, либо при принятии решения о выполнении некоторого действия, например:

Private sub CheckBox1_Click()

If CheckBox1.Value = True Then

'операторы

Else

'операторы

End If

End Sub

Public Sub LaunchTask()

If CheckBox1.Value Then

'Действие А

Else

'Действие Б

End If

End sub

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

Группировка переключателей

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

В VBA имеются два способа выполнения группировки переключателей:

  • С помощью рамки. Все элементы управления OptionButton, расположенные в одном объекте Frame, рассмативаются как члены одной группы. Недостатком такого подхода является необходимость использовать дополнительную рамку для каждого набора переключателей.

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

Значение свойства GroupName элемента управления OptionButton можно установить как в программе, так и в окне свойств.

Определение выбранного переключателя

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

Пример программы выбранного переключателя:

Public Sub CheckOptionsButtons()

If OptionsButton1.Value Then

'операторы

ElseIf OptionsButton2.Value Then

'операторы

ElseIf OptionsButton3.Value Then

'операторы

End If

End Sub

Элемент управления Frame (Рамка) используется для группировки элементов управления в форме.

Свойства рамки

Поскольку элемент управления Frame имеет весьма ограниченный круг применения, у него есть всего несколько свойств и методов. Свойство Caption определяет текст, который появляется вверху рамки. Например:

Frame1.Caption = "Visual Basic"

Элемент управления SpinButton (Счетчик) используется для задания числового значения. Нажимая одну из двух кнопок счетчика, можно либо увеличить, либо уменьшить текущее значение в другом элементе управления, обычно в поле. Можно также установить значение счетчика непосредственно с клавиатуры.

Программирование счетчика.

Для изменения значения в связанном со счетчиком элементе управления необходимо использовать события, связанные с нажатием кнопок объекта SpinButton.

При нажатии кнопок элемента управления SpinButton возникают следующие события:

Private Sub SpinButton1_SpinUp()

End Sub

Private Sub SpinButton1_SpinDown()

End Sub

События SpinUp и SpinDown используются для изменения значения в связанном элементе управления. Свойство Value счетчика автоматически изменяется, когда пользователь нажимает его кнопку. Требуется написать процедуры, в которых при нажатии кнопки счетчика присваивается значение связанному со счетчиком объекту:

Private Sub SpinButton1_SpinUp()

TextBox1.Value = SpinButton1.Value

End Sub

Private Sub SpinButton1_SpinDown()

TextBox1.Value = SpinButton1.Value

End Sub

Пример использования счетчика для изменения названия месяца:

Private Sub SpinButton1_SpinUp()

TextBox1.Value = GetMonthName(SpinButton1.Value)

End Sub

Private Sub SpinButton1_SpinDown()

TextBox1.Value = GetMonthName (SpinButton1.Value)

End Sub

Private Fuction GetMonthName(iMonth As Integer) As String

If iMonth =13 Then

iMonth = 1

ElseIf iMonth =0 Then

iMonth = 12

End if

Select Case iMonth

Case 1

GetMonthName ="январь"

Case 2

GetMonthName ="февраль"

Case 3

GetMonthName ="март"

Case 4

GetMonthName ="апрель"

Case 5

GetMonthName ="май"

Case 6

GetMonthName ="июнь"

Case 7

GetMonthName ="июль"

Case 8

GetMonthName ="август"

Case 9

GetMonthName ="сентябрь"

Case 10

GetMonthName =" октябрь "

Case 11

GetMonthName ="ноябрь"

Case 12

GetMonthName ="декабрь"

End Select

End Function

Элемент управления SpinButton имеет три свойства, которые используются при изменении его значения:

  • Max определяет максимальное значение элемента управления. При попытке увеличить значение счетчика, когда оно уже равно максимальному, значение не изменяется.

  • Min определяет минимальное значение элемента управления. При попытке уменьшить значение счетчика, когда оно уже равно минимальному, значение не изменяется.

  • Value изменяется при нажатии кнопки счетчика. Данное свойство можно задать как в программе, так и в окне свойств.

Элемент управления ToggleButton (Выключатель) создает кнопку, имеющую два состояния: включено и выключено.

Программирование выключателя

Свойство Value элемента управления ToggleButton имеет значение True, False или Null. В зависимости от конкретного случая можно либо выполнить некоторую операцию при изменении состояния выключателя, либо использовать значение свойства Value при запуске некоторой подпрограммы. В последнем случае можно передать подпрограмме состояние переключателя в качестве параметра.

Пример использования выключателя:

Public Sub ToggleButton1_Click()

If ToggleButton1.Value Then

'операторы

Else

'операторы

End If

End Sub

Public Sub SomeTask()

TaskName(ToggleButton1.Value)

End Sub

Выполнение лабораторной работы

  1. Добавить форму в проект. Для этого:

  • Выбрать имя проекта в окне проекта, в который требуется добавить форму;

  • Выбрать команду Insert\UserForm, после чего выведется пустая форма и набор инструментов;

  • Вывести окно свойств и задать свойства новой формы, например, (Name -Форма1, Caption - Форма1).

  1. Просмотреть набор дополнительных инструментов и добавить один из их на панель инструментов проекта. Для этого:

  • Открыть требуемую форму;

  • Выбрать команду Tools\Additional Controls, после этого выводится диалоговое окно Additional Controls;Сбросить флажок Selected Items Only (Только выделенные объекты) для вывода всех доступных дополнительных элементов;

  • Выбрать требуемый элемент управления, установив флажок против его имени (например, Элемент управления "Календарь" 9.0)

  • Нажать кнопку "ОК". Выбранный элемент будет выведен на панели элементов.

  1. Разместить различные элементы управления в форме. Для этого:

  • Выбрать форму, в которую требуется добавить элементы управления (Форма1), при необходимости вывести панель элементов;

  • Нажать на панели элементов кнопку требуемого элемента, а затем щелкнуть по любому месту формы. В форме выведется элемент управления;

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

  1. Просмотреть внешний вид разрабатываемой формы. Для этого: Открыть форму и либо нажать клавишу F5, либо выполнить команду Rug Sub/UserForm

  2. Выровнять элементы управления в форме. Для этого:

  • Выделить несколько элементов управления (Щелкнуть по первому элементу, а затем, удерживая клавишу <Shift>, выделить другие объекты. Чтобы отменить выбор одного из выделенных объектов, нужно повторно щелкнуть по этому элементу, удерживая нажатой клавишу <Shift>);

  • Выполнить команду Format\ Arrange Buttons\ Right (Формат\Выровнять по правому краю), а затем комаду Format\Make Same Size\Both (Формат\Выровнять\Размер\По ширине и высоте)

  1. Задать порядок перехода от одного элемента управления к другому. Если элементы управления, для которых требуется задать порядок перехода, находятся в рамке, выберите рамку.

  • Выбрать команду View\Tab Order, после чего в появившемся окне Tab Order расставить требуемым образом названия элементов управления в этом списке, выделив имя объекта и нажав кнопку "Move Up" или " Move Down".

  • Нажать кнопку "ОК" для сохранения последовательности перехода, а затем клавишу <F5> для просмотра формы.

  1. Связать объект в форме с кодом. Для этого дважды щелкнуть по элементу управления в форме. В появившемся окне модуля для выбранного объекта выберите событие, для которого требуется создать процедуру обработки, в списке, расположенном в верхнем правом углу окна модуля.

  2. Создать и отладить VBA-код, связанный с элементом управления TextBox (Поле). Для этого:

  • Создать новую форму (Name - Форма2, Caption - Форма2)

  • Разместить в ней в следующей последовательности слева направо: Поле (Name -Множимое, TabIndex - 1)

  • Надпись (Caption - X, TabIndex - 0, Enabled - False)

  • Поле (Name - Множитель, TabIndex - 2)

  • Надпись (Caption - =, TabIndex - 0, Enabled - False)

  • Поле (Name - Произведение, TabIndex - 3, Enabled - False)

  • Связать поле Множимое и поле Множитель с кодом. Для этого дважды щелкните по соответствующему элементу управления и введите следующие тексты:

Private Sub Множимое_Change()

Dim a As Single

Dim b As Single

Dim c As Single

If Множитель.Value <> "" Then

a = Val(Множимое.Value)

b = Val(Множитель.Value)

c = a * b

Произведение.Value = Str(c)

End If

End Sub

Private Sub Множитель_Change()

Dim a As Single

Dim b As Single

Dim c As Single

If Множимое.Value <> "" Then

a = Val(Множимое.Value)

b = Val(Множитель.Value)

c = a * b

Произведение.Value = Str(c)

End If

End Sub

  • Проверить работу этих программ нажатием клавиши F5 с последующим вводом чисел в поля.

  1. Создать и отладить VBA-код, связанный с элементами управления CommandButton (Кнопка) и ListBox (Список). Для этого:

  • Создать новую форму (Name-Форма3, Caption- Форма3)

  • Разместить в ней элементы управления:

Список (Name - Список_дн)

  • Поле (Name - Элемент)

  • Кнопка (Name - Заполнение, Caption - Заполнение)

  • Связать Список Список_дн и Кнопку Заполение с кодом. Для этого дважды щелкните по соответствующему элементу управления и введите следующие тексты:

Private Sub Заполнение_Click()

Список_дн.AddItem "Понедельник"

Список_дн.AddItem "Вторник"

Список_дн.AddItem "Среда"

Список_дн.AddItem "Четверг"

Список_дн.AddItem "Пятница"

Список_дн.AddItem "Суббота"

Список_дн.AddItem "Воскресенье"

End Sub

Private Sub Список_дн_Change()

Элемент.Text = Список_дн.Text

End Sub

  • Проверить работу этих программ нажатием клавиши F5. Сначала нажать кнопку, а затем выбрать элемент из списка.