Элемент управления RefEdit (Поле со свёртыванием)

Элемент управления RefEdit (Поле со свёртыванием) аналогичен полю ввода, но позволяет вводить в него ссылку на диапазон выбором на рабочем листе. Свойство Value возвращает эту ссылку.

В качестве примера[1] использования элемента управления RefEdit используем проект, определяющий некоторые статистические параметры диапазона, а именно максимальное, минимальное значения и сумму всех значений ячеек этого диапазона. Создаётся форма, на которой расположены две кнопки: CommandButton1 и CommandButton2 и элемент управления RefEdit (рис. 30). Кнопка CommandButton1 предназначена для задания значения диапазона элемента управления RefEdit, а кнопка CommandButton2 – для выгрузки формы. Форма, приведённая на рис. 31, загружается при выполнении процедуры СТАТИСТИКА2:

Sub СТАТИСТИКА2()

СТАТИСТИКА.Show

End Sub

находящейся в стандартном модуле Module1.

Элемент управления RefEdit (Поле со свёртыванием) - student2.ru Элемент управления RefEdit (Поле со свёртыванием) - student2.ru
Рис. 28. Проект формы Рис.29. Загруженная форма

Для задания диапазона необходимо сделать активным окно элемента управления RefEdit и выделить нужный диапазон Лист1!$A$14:$A$17
(рис. 30). При выделении диапазона размер формы уменьшается, открывая ячейки для его выделения. Отсюда название элемента “Поле со свёртыванием”.

Элемент управления RefEdit (Поле со свёртыванием) - student2.ru

Рис. 30. Выделение диапазона

При нажатии на кнопку ok выполняется следующая процедура модуля формы.

Private Sub CommandButton1_Click()

Dim r As String

Dim min As Double, max As Double, s As Double

r = RefEdit1.Value

Dim rgn As Range

Set rgn = Range

min = WorksheetFunction.min(rgn)

max = WorksheetFunction.max(rgn)

s = WorksheetFunction.Sum(rgn)

MsgBox RefEdit1.Value & vbCr & _

“min=” & min & vbCr & _

“max=” & max & vbCr & _

“s=” & s

End Sub

В этой процедуре инструкция r = RefEdit1.Value присваивает переменной r значение ссылки на диапазон, инструкция Dim rgn As Range объявляет переменную rgn как объект Range, а инструкция Set rgn = Range присваивает значение ячеек выбранного диапазона переменной rgn.

Значения свойства Caption формы (Статистика), кнопки CommandButton1 (ok) и кнопки CommandButton2 (Выйти) задаются при инициализации следующей процедуры модуля формы:

Private Sub UserForm_initialize()

Me.Caption = “Статистика”

CommandButton1.Caption = “ok”

CommandButton2.Caption = “Выйти”

End Sub

Удаление формы из памяти осуществляется при нажатии кнопки “Выйти”. При этом возникает событие Click, обрабатываемого следующей процедурой формы:

Private Sub CommandButton2_Click()

Unload Me

End Sub

При использовании данного приложения действия производятся в следующем порядке.

1. Запускается (пользователем или программно) процедура СТАТИСТИКА2.

2. Эта процедура загружает форму СТАТИСТИКА, при инициализации которой выполняется процедура UserForm_initialize.

3. Пользователь выделяет на рабочем листе диапазон значений, на который ссылается элемент управления RefEdit.

4. При нажатии на кнопку ok вызывается процедура CommandButton1_Click, в результате выполнения которой осуществляется подсчёт минимума, максимума и суммы величин выбранного диапазона при помощи свойств Min, Max и Sum объекта WorksheetFunction, представляющие собой одноименные функции рабочего листа и которые выводятся на экран при помощи функции MsgBox (рис. 33).

Элемент управления RefEdit (Поле со свёртыванием) - student2.ru

Рис. 31. Результаты выполнения приложения СТАТИСТИКА

5. При нажатии на кнопку Выйти выполняется процедура CommandButton2_Click,в результате чего форма СТАТИСТИКА выгружается.

Наши рекомендации