Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
формы.doc
Скачиваний:
6
Добавлен:
02.06.2015
Размер:
532.48 Кб
Скачать

Связь формы с рабочей книгой

Некоторые элементы управления могут быть связаны с объектами рабочей книги, например, с объектом Range, представляющим интервал ячеек рабочего листа.

Элемент TextBox

Свойство ControlSource элемента TextBox указывает на ячейку рабочего листа, связывая этот элемент формы с объектом Range, таким образом, что в режиме выполнения формы содержимое заданной ячейки высветится в элементе TextBox и, наоборот, текст, введенный в TextBox, автоматически попадает в связанную с ним ячейку.

Свойство ControlSource задается как ссылка на ячейку, например, B2. В таком виде ссылка указывает на ячейку активного рабочего листа. Для ссылки на ячейку произвольного листа адрес ячейки указывается после имени листа, разделитель – восклицательный знак, например, MySheet!B2.

Оператор установки свойства ControlSource объекта Inp_Box рассмотренного выше примера может выглядеть так: Inp_Box.ControlSource="B2"

Элемент ListBox

Свойство RowSource объекта ListBox связывает список с ячейками рабочего листа. Интервал ячеек задается ссылкой обычным образом: адрес ячейки левого верхнего угла и адрес ячейки нижнего правого угла, между которыми двоеточие. Если интервал ячеек расположен на определенном листе, то имя листа предшествует границам интервала с восклицательным знаком в качестве разделителя, например, MySheet!A15:C43.

В событийной процедуре инициализации формы рассмотрен третий способ создания списка.

Private Sub UserForm_Initialize()

'значения списка из ячеек рабочего листа

Dim wSheets As Integer

Dim i As Integer

wSheets = WorkSheets.Count

lst_Sheet.Clear

Worksheets(Worksheets.Count).Activate

For i = 1 To wSheets

Cells(i, 1) = WorkSheets(i).Name

Next i

lst_Sheet.RowSource = ActiveSheet.Name & "!A1:A" & wSheets

End Sub

Подсчитывается количество рабочих листов, список очищается и активизируется последний рабочий лист. Перечень имен рабочих листов создается в последовательных ячейках столбца A, начиная с первой. В свойстве RowSource устанавливается ссылка на созданный перечень листов, таким образом связывая элемент ListBox формы Act_Sheet с ячейками последнего рабочего листа.

Пример 2

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

Конструирование форм

Для приложения спроектируем две формы.

  • Первая форма (основная) будет выполнять настройки пользователя.

    Рис. 7.12. Форма для пользовательских настроек

    Пользователь может выбрать из списка цвет фона электронных часов. При выборе CountUpустанавливается прямой отсчет времени, а при выбореCountDownустанавливается обратный отсчет времени. При щелчке на любую опцию из этих двух загружается следующая форма. Нажатие на кнопкуExitзакрывает форму.

  • Bторая форма будет запускать электронные часы.

Рис. 7.13. Форма для запуска электронных часов

Пользователь может установить количество секунд, в течение которых будет высвечиваться время. Нажатие командной кнопки Startили щелчок на свободное пространство формы инициализирует ход электронных часов. Кнопки со стрелками инициируют отсчет времени назад (левая кнопка) или отсчет времени вперед (правая кнопка) без возвращения в основную форму.

Командная кнопка New_select позволяет вернуться в основную форму и сделать новые настройки.

Вставьте две новые формы, расположите на них элементы управления и установите их свойства в соответствии с рисунками и таблицей.

Свойства элементов управления форм

Тип элемента

Комментарий

Свойства

Значение свойства

Основная форма для настроек пользователя

UserForm

Основная форма

Name

el_watch_custom

Caption

Make Selection

Label

Поясняющий текст для списка цветов

Name

Label1

Caption

Select color of e_watch

Label

Поясняющий текст для опции отсчета времени вперед

Name

Label2

Caption

Count_Up

Label

Поясняющий текст для опции отсчета времени назад

Name

Label3

Caption

Count_Down

CommandButton

Кнопка завершения работы с формой

Name

Cmd_exit

Caption

Exit

Accelerator

E

ListBox

Список цветов

Name

theColors

Frame

Рамка для переключателей

Name

Frame1

Caption

Indicator

OptionButton

Отсчет вперед от текущего времени до времени останова

Name

Count_Up

OptionButton

Отсчет назад от времени останова до времени запуска формы

Name

Count_Down

Форма с электронными часами

UserForm

Вызываемая форма

Name

ew

Caption

Electronic Watch

Label

Поясняющий текст

Name

Label1

Caption

Enter second from 1 to 10 and click Start

Label

Элемент для высвечивания времени

Name

watch

Caption

(пустая строка)

Font

Жирное начертание, размер 16

TextBox

Поле для ввода числа секунд

Name

sec

ToggleButton

Установка порядка отсчета времени назад

Name

left_but

Рисунок на кнопке

Picture

Из файла left_arrow_normal, находящегося в папкеProgram Files\common Files\Roxio shared\Tutorial\Graphics

Высота кнопки

Height

29,5

Ширина кнопки

Width

29,5

ToggleButton

Установка порядка отсчета времени вперед

Name

right_but

Рисунок на кнопке

Picture

Из файла right_arrow_normal, находящегося в папке Program Files\common Files\Roxio shared\Tutorial\Graphics

Высота кнопки

Height

29,5

Ширина кнопки

Width

29,5

CommandButton

Пуск электронных часов

Name

cmd_Go

Caption

Start

Accelerator

S

CommandButton

Изменение установок пользователя

Name

cmd_new_select

Caption

New_Select

Accelerator

N