End Sub

End If

End If

Else

Next

Then

End Sub

End If

Else

Next

End Sub

End Sub

End If

Else

Next

End Sub

End If

Else

Next

End Sub

Начальные условия

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

– форме – frmСумма;

– полю От – txtОт;

– полю до – txtДо;

– кнопке Отмена – cmdОтмена;

– полю Результат – txtРезультат.

Сама программа находится в модуле формы и имеет следующий вид:

Private Sub UserForm_Initialize()

spnОт. Min = 0

spnОт. Max = 100

spnОт. SmallChange = 1

spnДо. Min = 0

spnДо. Max = 100

spnДо. SmallChange = 1

cmdОтмена. Cancel = True

Private Sub spnОт_Change()

txtОт.Value = spnОт.Value

Сумма = 0

If Val (txtОт.Value) <= Val (txtДо.Value) Then

For i = Val(txtОт.Value) To Val(txtДо.Value)

Сумма = Сумма + i

txtРезультат.Value = Сумма

txtРезультат.Value = ""

Private Sub spnДо_Change()

txtДо.Value = spnДо.Value

Сумма = 0

If Val (txtОт.Value) <= Val (txtДо.Value) Then

For i = Val(txtОт.Value) To Val(txtДо.Value)

Сумма = Сумма + i

txtРезультат.Value = Сумма

txtРезультат.Value = ""

Private Sub cmdОтмена_Click()

Unload frmСумма

ЗАМЕЧАНИЯ: 1. Встроенная функция Val преобразовывает число, написанное в символьном виде, в числовой формат.

2. Условие: If Val(txtОт.Value) <= Val(txtДо.Value) Thenпроверяет упорядоченность чисел «от» и «до» по возрастанию. Если числа упорядочены, то считается сумма чисел, принадлежащих заданному диапазону, если нет, то сумма не подсчитывается и поле Результат пусто.

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

Private Sub txtОт_Change()

Сумма = 0

If Val(txtОт.Value) <= Val(txtДо.Value) Then

For i = Val(txtОт.Value) To Val(txtДо.Value)

Сумма = Сумма + i

txtРезультат.Value = Сумма

txtРезультат.Value.Value = ""

Аналогичная процедура будет и для поля ввода txtДо, поэтому целесообразно оформить их в виде вызова подпрограммы ИзменениеПоляВвода (напишите её самостоятельно).

4. В текстовом поле пользователь может сделать ошибку и ввести символ, а не цифру. Чтобы избежать этого, необходимо проверить введенную пользователем последовательность. Как Вы знаете, это можно сделать с помощью встроенной функции IsNumeric:

Private Sub txtОт_Change()

If IsNumeric (txtОт.Value) = True Then

Сумма = 0

If Val(txtОт.Value) <= Val(txtДо.Value) _

For i = Val(txtОт.Value) To Val(txtДо.Value)

Сумма = Сумма + i

txtРезультат.Value = Сумма

txtРезультат.Value.Value = ""

Else: MsgBox "Число введено неверно!"

Вот теперь программа приняла законченный вид.

12.12. Создание нестандартных меню
и панелей инструментов

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

12.12.1. Объект CommandBar
и семейство CommandBars

Объект CommandBar и семейство CommandBars используется для программирования строк меню и панелей инструментов. В этом семействе хранятся все строки меню и панели инструментов Excel. Например, в него входят известные Вам панели инструментов Стандартная и Форматирование и т.д., а также строка меню рабочего листа.

В свою очередь, каждый объект CommandBar содержит семейство CommandBarControls. Например, панель инструментов Форматирование содержит кнопки Стиль, Шрифт, Размер, Полужирный и т.д.

Свойство Controls объекта CommandBar возвращает семейство CommandBarControls.

Элементы семейства CommandBarControls относятся к одному из трех типов:

Элемент семейства Описание
CommandBarButton Кнопка или элемент меню, вызывающий выполнение программы.
CommandBarComboBox Сложно организованное меню: список, поле со списком
CommandBarPopUp Меню или вложенное меню

На рис. 12.23 представлена иерархическая структура объекта CommandBar.

Рис. 12.23. Иерархическая структура объекта CommandBar


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: