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

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

Жанры

Офисное программирование
Шрифт:

Нажатие кнопки Вычислить запускает на выполнение процедуру CommandButton1_Click

Определяет, какой переключатель выбран. В зависимости от выбранного переключателя производит действие над выбранными в списке числами. Найденное число выводится в поле Результат

Нажатие кнопки Закрыть запускает на выполнение процедуру CommandButton2_Click

Закрывает диалоговое окно

Процедура нажатия кнопки «Вычислить» производит вычисления с элементами списка в зависимости от выбранной операции. Вводятся переменные n и i, где n играет роль счетчика числа выбранных элементов из списка, а i – вспомогательная переменная. Также вводятся переменные, которые будут содержать результат вычислений: сумма, произведение и среднее. Все полученные вычисления присваиваются переменной Результат, которая и выдается в текстовое поле.

Процедура нажатия кнопки Вычислить

Private Sub CommandButton1_Click

Dim i As Integer

Dim n As Integer

Dim Сумма As Double

Dim Произведение As Double

Dim Среднее As Double

Dim Результат As Double

' При выборе первого переключателя вычисляется сумма

If OptionButton1.Value = True Then

Сумма = 0

With ListBox1

For i = 0 To.ListCount – 1

If.selected(i)=true then

Сумма = Сумма +.List(i)

End if

Next i

End With

Результат = Сумма

End If

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

If OptionButton2.Value = True Then

Произведение = 1

With ListBox1

For i = 0 To.ListCount – 1

If.Selected(i)=True Then

Произведение = Произведение *.List(i)

End if

Next i

End With

Результат = Произведение

End If

' При выборе третьего переключателя вычисляется среднее арифметическое

If OptionButton3.Value = True Then

Среднее = 0

n = 0

With ListBox1

For i =0 To.ListCount – 1

If.Selected(i)=True Then

n=n+1

Среднее = Среднее +.List(i)

End if

Next i

End With

Результат = Среднее /n

End If

' Полученное значение Результат выводится в текстовое поле

TextBox1.Text = CStr(Format(Результат, «Fixed»))

End Sub

Процедура нажатия кнопки «Закрыть»

Private Sub CommandButton2_Click

UserForm1.Hide

End Sub

Процедура инициализации диалогового окна заключается в заполнении списка и выводе его на форме, организации всплывающих подсказок, запрещении ввода текста в поле результата на форме.

Private Sub UserForm_Initialize

With ListBoxl

List = Array(1, 3, 4, 5, 6, 7, 8, 10)

Listlndex = 0 'начальная индексация массива

MultiSelect=fmMultiSelectMulti

End With

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

ControlTipText ="Сумма выбранных элементов"

End With

OptionButton2.ControlTipText ="Произведение выбранных элементов"

OptionButton3.ControlTipText = «Среднее значение выбранных элементов»

' Поле Результат не доступно для пользователя

TextBox1.Enabled = False

' Назначение клавише <Enter> функции кнопки Вычислить и задание текста всплывающей подсказки

With CommandButton1

Default = True

ControlTipText = «Нахождение результата»

End With

' Назначение клавише <Esc> функции кнопки Закрыть и задание текста всплывающей подсказки

CommandButton2.Cancel = True

' Задание заголовка пользовательской формы

UserForm1.Caption = «Операции над элементами списка»

UserForm1.Show

End Sub

Примечание. Интересной особенностью приводимой процедуры инициализации UserForm_initialize является то, что заголовок диалогового окна вводится программно при помощи свойства Caption, а не вручную при помощи окна Properties.

Пример 23. Разработать программу нахождения среднего балла студентов, выбранных из списка в диалоговом окне «Средний балл». Список содержит фамилию студента и его средний балл (двумерный массив) (рис. 41).

Рис. 41. Разработанная форма примера 23 в рабочем состоянии

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

При выполнении задания опирайтесь на приводимые ниже примечания.

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

непосредственно заполнить двумерный массив ListBoxl.List;

задать произвольный двумерный массив, а затем присвоить его значение для ListBoxl.List (см. п. 3.1 и 4.1).

Соответственно, для расчета среднего балла следует воспользоваться только элементами второго столбца массива, т. е. вторая координата массива ListBoxl.List должна быть фиксирована на 1 (если индексация массива положена с нуля) или на 2 (если индексация массива положена с 1).

4.3. Элементы управления MultiPage, ScrollBar, SpinButton [2]

Коллекция Controls

Для доступа к набору элементов управления диалогового окна можно использовать коллекцию Controls, включающую все элементы управления окна. Каждый элемент управления имеет в этой коллекции индекс, значение которого может быть числом или строкой. Для первого элемента управления индекс равен 0. Числовые индексы определяются порядком размещения элементов в коллекции. Строковое значение индекса соответствует имени (Name) элемента.

2

Теоретический материал опирается на материал книги Биллиг В.А. VBA в Office 2000. Офисное программирование. М.: Издательско-торговый дом «Русская Редакция», 1999.

Пример 24. Создать форму, имеющую пять элементов: метка, текстовое поле, список, две кнопки. Ввести в текстовое поле и список по умолчанию текст «поле 1», «список 1» (свойство text соответственно у каждого элемента). Первая кнопка «Нажми» выполняет следующее действие: вызывается диалоговое окно, в котором запрашивается разрешение на удаление очередного элемента формы (их пять). Ответ «да» или «нет» выполняет соответствующее действие. Кнопка «Закрыть» закрывает диалоговое окно.

Примечание. Используя коллекцию Controls, программно в цикле организовать скрытие (не удаление!) элементов управления диалогового окна MyForm (свойство Name формы).

Технология выполнения

1. Запустите приложение Word, сохраните новый документ.

2. Создайте форму в режиме конструктора (рис. 42).

Рис. 42. Форма примера 24

3. Обработайте кнопки Нажми и Закрыть.

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

Анна Иоановна

Сахаров Андрей Николаевич
9. Романовы. Династия в романах
Проза:
историческая проза
5.60
рейтинг книги
Анна Иоановна

Бастард Императора. Том 14

Орлов Андрей Юрьевич
14. Бастард Императора
Фантастика:
городское фэнтези
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Бастард Императора. Том 14

Краем глаза

Кунц Дин Рей
Детективы:
триллеры
8.62
рейтинг книги
Краем глаза

Новое восстание

Раш Кристин Кэтрин
139. Звездные войны
Фантастика:
боевая фантастика
5.00
рейтинг книги
Новое восстание

Старый, но крепкий 4

Крынов Макс
4. Культивация без насилия
Фантастика:
уся
фэнтези
5.00
рейтинг книги
Старый, но крепкий 4

#Бояръ-Аниме. Газлайтер. Том 13

Володин Григорий Григорьевич
13. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
фэнтези
7.33
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 13

Последний реанорец. Том I и Том II

Павлов Вел
1. Высшая Речь
Фантастика:
фэнтези
7.80
рейтинг книги
Последний реанорец. Том I и Том II

Том 6. Письма

Есенин Сергей Александрович
6. Есенин Сергей. Полное собрание сочинений в семи томах
Поэзия:
поэзия
5.00
рейтинг книги
Том 6. Письма

Рожденные Небом

Скиф
2. Вселенная EVE Online
Фантастика:
космическая фантастика
8.61
рейтинг книги
Рожденные Небом

Цикл "Идеальный мир для Лекаря". Компиляция. Книги 1-30

Сапфир Олег
Лекарь
Фантастика:
боевая фантастика
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Цикл Идеальный мир для Лекаря. Компиляция. Книги 1-30

Новая хронология Греции

Фоменко Анатолий Тимофеевич
Научно-образовательная:
история
5.00
рейтинг книги
Новая хронология Греции

Метатель

Тарасов Ник
1. Метатель
Фантастика:
боевая фантастика
попаданцы
рпг
фэнтези
фантастика: прочее
постапокалипсис
5.00
рейтинг книги
Метатель

Воронцов. Перезагрузка. Книга 4

Тарасов Ник
4. Воронцов. Перезагрузка
Фантастика:
попаданцы
альтернативная история
фэнтези
фантастика: прочее
6.00
рейтинг книги
Воронцов. Перезагрузка. Книга 4

Массовая культура

Райнов Богомил Николаев
Научно-образовательная:
культурология
5.00
рейтинг книги
Массовая культура