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

Элемент Полоса прокрутки

Элемент Полоса прокрутки (ScrollBar) позволяет выбирать значение из заданного диапазона с помощью мыши (изменяя положение бегунка).

Основные свойства элемента Полоса прокрутки:

Min

Устанавливает наименьшее значение для элемента, отвечающее крайнему левому или крайнему верхнему положению в соответствующей полосе прокрутки. Диапазон рекомендуемых значений от -32767 до 32767.

Max

Устанавливает наибольшее значение для элемента, отвечающее крайнему правому или крайнему нижнему положению в соответствующей полосе прокрутки. Диапазон рекомендуемых значений от -32767 до 32767.

Value

Значение из диапазона от Min до Max, которое соответствует положению бегунка полосы прокрутки.

LargeChange

Устанавливает величину изменения свойства Value после щелчка на полосе прокрутки между бегунком и кнопкой со стрелкой (целое от 1 до 32767)

SmallChange

Устанавливает величину изменения свойства Value после щелчка на кнопке со стрелкой (целое от 1 до 32767)

ControlSource

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

Orientation

Определяет ориентацию элемента (вертикальную или горизонтальную).

События элемента Полоса прокрутки:

Change

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

Scroll

Возникает при движении бегунка (непрерывно).

Практические задания Задание 3.1

Добавим в программу, созданную в задании 2.1 для вычисления значения выражения, необходимые проверки. Тексты процедур приведены ниже.

Private Sub CommandButton1_Click()

CommandButton2.Enabled = False

X = InputBox("Введите значение")

If X = "" Then

R = MsgBox("Вы ничего не ввели", _

vbOKOnly + vbInformation, "Сообщение")

Exit Sub

ElseIf IsNumeric(X) = False Then

R = MsgBox("Вы ввели не число", _

vbOKOnly + vbExclamation, "Предупреждение")

Exit Sub

ElseIf X = 2 Then

R = MsgBox("Недопустимое значение аргумента", _

vbOKOnly + vbCritical, "Критическое сообщение")

Exit Sub

End If

CommandButton2.Enabled = True

End Sub

Private Sub CommandButton3_Click()

R = MsgBox("Закончить работу?", _

vbYesNo + vbQuestion, "Вопрос")

If R = vbYes Then UserForm1.Hide

End Sub

Если значение переменной не введено или введено неверно, то кнопка «Вывод» недоступна. Это достигается за счет того, что в начале работы процедуры, в которой вводится значение, свойство Enabled у кнопки устанавливается False. Если ни одно из условий не выполнится, в конце процедуры значению свойства будет присвоено True. Если какое-нибудь условие выполнится, то после выполнения Exit Sub процедура завершит работу досрочно, и значение останется равным False.

Первая проверка показывает, как определить, ввёл ли пользователь что-нибудь в окно ввода. Если он ничего не ввел или нажал Esc, то значение функции InputBox будет равно "" (пустая строка).

Далее проверяется, можно ли строку, введённую пользователем, преобразовать в число. Для этого используется стандартная функция IsNumeric. Значение функции равно True, если это возможно, и False – в противном случае. В VBA имеются и другие функции с аналогичным назначением: IsDate, IsArray и т.д.

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

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

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