Чтение онлайн

на главную - закладки

Жанры

VBA для чайников

Каммингс Стив

Шрифт:

Перед программистом стоит задача: как понять, какой переключатель выбран? Для этого вы должны проверить значение свойства Va l ue для каждого переключателя в группе. Правда, есть способ обойти это. Для этого можно воспользоваться инструкцией If. . .ElseIf:

If OptionEuttonl.Value = True Then

ChosenOption = "Bill"

ElseIf OptionButton2.Value = True Then

ChosenOption = "Bob"

ElseIf OptionButton3.Value = True Then

ChosenOption = "Barney"

Else

ChosenOption = ""

End If

Переключатели полезны, когда приходится иметь дело с большим количеством взаимоисключающих вариантов. Однако, когда необходимо выбрать несколько вариантов, лучше воспользоваться флажками или кнопками с фиксацией. Флажки и кнопки с фиксацией используются для выбора одного из пары противоположных вариантов, например Yes (Да) или No (Нет). On или Off, True или False и Stay или Leave. На практике отличие между флажком и кнопкой с фиксацией состоит в том, как они выглядят.

* Флажок - это маленький квадратик, в котором появляется галочка, если выбран параметр Yes, On или True. (Если квадратик пустой, значит флажок сброшен.)

* Кнопка с фиксацией похожа на обычную кнопку. Единственное отличие состоит в том, что, когда вы щелкаете на ней, она остается нажатой.

На рис. 10.21 показаны несколько флажков и кнопок с фиксацией.

Рис. 10.21. Флажки и кнопки с фиксацией

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

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

Рис. 10.22. Устанавливать и сбрасывать флажки можно независимо

Как обычно, свойство Value содержит информацию, относящуюся к выбору параметров пользователем. Если флажок установлен, свойство Value равно True, если флажок сброшен, свойство Value равно False. Такая же ситуация и с кнопками с фиксацией: свойство Value равно True; если кнопка нажата. В противном случае свойство Value равно False. Для выбора параметров можно воспользоваться следующим кодом:

If tglLightSwitch.Value = True Then

TurnLightOff

Else

TurnLightsOff

End If

[ не всегда код автора безупречен…

If tglLightSwitch.Value = True Then

аналогичен

If tglLightSwitch.Value Then

w_cat ]

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

ChkYesOrNo.Value = Not chkYesOrNo.Value

Выбор параметров из списка и комбинированных окон

Если вы предполагаете, что для элемента может быть четыре-пять взаимоисключающих вариантов выбора, созданное вами диалоговое окно будет слишком загроможденным, ведь в нем может быть 10 -12 флажков. Пользователь может устанавливать флажки в зависимости от собственных предпочтений. Но из-за такого количества элементов в форме станет слишком тесно.

Список- это возможность, предоставляемая Windows для решения многих проблем.

В списке содержится перечень параметров, которые пользователь может выбрать (рис. 10.23).

Рис. 10.23. В данной форме в верхней части располагается список, а в нижней - комбинированное окно

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

Комбинированный список объединяет в себе достоинства простого списка и текстового поля.

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

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

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

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

И вот почему: простой список VBA не может отображать элементы в виде раскрывающегося списка, Вместо этого вы имеете дело с списком, в котором перечислены все доступные варианты выбора сразу. Это не всегда удобно, так как, если в списке слишком много элементов, он займет слишком большую часть формы. Если элементов в списке немного, лучше воспользоваться переключателями или флажками.

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

(f mStyleDropDownList). А теперь подумайте: стоит ли мучиться со списками?

Теперь пришла очередь самого трудного. Окно Properties (Свойства) нельзя использовать для ввода вариантов выбора, которые должны находиться в списке или комбинированном списке. Вместо этого вы должны написать код для метода AddItem элемента управления или связать элемент управления с источником данных (он представляет собой электронную таблицу Excel или базу данных Access).

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

Поделиться:
Популярные книги

Гримуар темного лорда II

Грехов Тимофей
2. Гримуар темного лорда
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Гримуар темного лорда II

Точка Бифуркации

Смит Дейлор
1. ТБ
Фантастика:
боевая фантастика
7.33
рейтинг книги
Точка Бифуркации

Древесный маг Орловского княжества 5

Павлов Игорь Васильевич
5. Орловское княжество
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Древесный маг Орловского княжества 5

По осколкам твоего сердца

Джейн Анна
2. Хулиган и новенькая
Любовные романы:
современные любовные романы
5.56
рейтинг книги
По осколкам твоего сердца

На границе империй. Том 10. Часть 5

INDIGO
23. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 5

На границе империй. Том 9. Часть 2

INDIGO
15. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 2

Вернувшийся: Корпорация. Том III

Vector
3. Вернувшийся
Фантастика:
космическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Вернувшийся: Корпорация. Том III

Неучтенный элемент. Том 9

NikL
9. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 9

Черный Маг Императора 6

Герда Александр
6. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
7.00
рейтинг книги
Черный Маг Императора 6

Неудержимый. Книга XXX

Боярский Андрей
30. Неудержимый
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Неудержимый. Книга XXX

Мы друг друга не выбирали

Кистяева Марина
1. Мы выбираем...
Любовные романы:
остросюжетные любовные романы
прочие любовные романы
современные любовные романы
5.00
рейтинг книги
Мы друг друга не выбирали

Третий Генерал: Тома I-II

Зот Бакалавр
1. Третий Генерал
Фантастика:
городское фэнтези
попаданцы
аниме
сказочная фантастика
5.00
рейтинг книги
Третий Генерал: Тома I-II

Черный рынок

Вайс Александр
6. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Черный рынок

Кодекс Охотника. Книга XII

Винокуров Юрий
12. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
аниме
7.50
рейтинг книги
Кодекс Охотника. Книга XII