Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Создание пользовательских п ÒÉÌÏÖÅÎÉÊ ÓÒÅÄÓÔÁÍ...doc
Скачиваний:
6
Добавлен:
18.11.2019
Размер:
2.02 Mб
Скачать

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

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

Элемент TextBox

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

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

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

Элемент 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.15).

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

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

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

(a)

(b)

Рис. 7.15. (a) -форма для пользовательских настроек;

(b) - форма для запуска электронных часов

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

Тип элемента

Комментарий

Свойства

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

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

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