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

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

Жанры

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

Нажатие кнопки Вычислить запускает на выполнение процедуру 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. Обработайте кнопки Нажми и Закрыть.

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

Убивать чтобы жить 7

Бор Жорж
7. УЧЖ
Фантастика:
героическая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 7

Идеальный мир для Лекаря 24

Сапфир Олег
24. Лекарь
Фантастика:
городское фэнтези
попаданцы
5.00
рейтинг книги
Идеальный мир для Лекаря 24

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

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

Я не царь. Книга XXIV

Дрейк Сириус
24. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я не царь. Книга XXIV

Тринадцатый IX

NikL
9. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
сказочная фантастика
5.00
рейтинг книги
Тринадцатый IX

Жена по ошибке

Ардова Алиса
Любовные романы:
любовно-фантастические романы
7.71
рейтинг книги
Жена по ошибке

Пустоши

Сай Ярослав
1. Медорфенов
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Пустоши

Как я строил магическую империю 9

Зубов Константин
9. Как я строил магическую империю
Фантастика:
постапокалипсис
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Как я строил магическую империю 9

Последний Паладин. Том 11

Саваровский Роман
11. Путь Паладина
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Последний Паладин. Том 11

Путешественник по Изнанке

Билик Дмитрий Александрович
4. Бедовый
Фантастика:
юмористическое фэнтези
городское фэнтези
попаданцы
мистика
5.00
рейтинг книги
Путешественник по Изнанке

Цикл романов "Целитель". Компиляция. Книги 1-17

Большаков Валерий Петрович
Целитель
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Цикл романов Целитель. Компиляция. Книги 1-17

Мастер 11

Чащин Валерий
11. Мастер
Фантастика:
боевая фантастика
попаданцы
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Мастер 11

Странник

Седой Василий
4. Дворянская кровь
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Странник

Хозяин Теней 2

Петров Максим Николаевич
2. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Хозяин Теней 2