с помощью мыши перетащить рамку элемента управления в нужное место.




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

Пример. В качестве примера работы с формой сконструируем простое приложение, вычисляющее значение функции, например Cos(x).

Перейдем в VBA и, выполнив команду Insert (Вставка) ® UserForm, добавим в проект форму. Расположим на форме следующие элементы управления

 
 

Таблица 6

Элемент управления Предназначение
CommandButton1 (кнопка) При нажатии на кнопку запускается процедура обработки события (Private Sub CommandButton1_Click()), которая считывает значение аргумента из поля TextBox1. Проверяется, введено ли в это поле число. Если введено не число, то на экране отображается соответствующее сообщение, прерывается выполнение процедуры, и фокус (курсор) устанавливается на поле TextBox1, предлагая исправить вводимые данные Если введено число, то находится значение функции при введенном значении аргумента, результат выводится во второе поле TextBox2
TextBox1 (поле) Поле для ввода пользователем значения аргумента
Label1 (надпись) Пояснительная надпись для поля ввода
TextBox2 (поле) В это поле будет выводиться значение функции. Поле сделаем недоступным для пользователя, т.е. пользователь не сможет ни ввести, ни скорректировать данные в этом поле
Label2 (надпись) Пояснительная надпись для поля вывода

Форма создана, функция каждого элемента управления известна.

Для написания кода программы, связанного с пользовательской формой, достаточно дважды щелкнуть, например, кнопку CommandButton1. Откроется редактор кода на листе модуля UserForm1. Более того, он откроется на том месте, где программируются действия, связанные с элементом управления, который был дважды нажат. Если код еще не набран, то при открытии редактора кода появятся инструкции заголовка и окончания процедуры, которая будет связана с элементом управления.

В данном случае в редакторе кода будет:

Private Sub CommandButton1_Click()

End Sub

Введем инструкции (команды), которые будут выполняться при нажатии на кнопку:

Private Sub CommandButton1_Click()  
If Not IsNumeric(TextBox1.Text) Then Проверка является ли введённое значение числом
MsgBox "Аргумент должен быть числом", _ vbExclamation Вывод окна сообщения
TextBox1.SetFocus Фокус (курсор) устанавливается на поле TextBox1
Exit Sub Досрочный выход из процедуры CommandButton1_Click()
End If Окончание оператора If
x = CDbl(TextBox1.Text) При считывании числа из поля ввода при помощи функции CDbl строковый тип, возвращаемый свойством Text, преобразуется в числовой
y = Cos(x) TextBox2.Text = CStr(y) Чтобы вывести результат в поле, переводим число в строковый формат при помощи функции CStr
End Sub Окончание процедуры CommandButton1_Click()

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

Private Sub UserForm_Initialize() Процедура UserForm_Initialize конструирует форму до ее загрузки
UserForm1.Caption = "Значение функции Cos(x)" Инструкция устанавливает текст, отображаемый в строке заголовка формы
Label1.Caption = "Аргумент" Label2.Caption = "Значение функции" CommandButton1.Caption = "OK" Инструкции задают видимые надписи для объектов
TextBox2.Enabled = False Инструкция делает TextBox2 недоступным для пользователя
End Sub Окончание процедуры UserForm_Initialize

После конструирования формы и написания кода в модуле формы выберем команду Run ® Run Sub/UserForm, либо нажмем клавишу <F5>, либо кнопку панели инструментов Standard, и форма отобразится поверх активного рабочего листа Excel.

Введем значение аргумента и нажмем на кнопку OK.

Рисунок 6 – Вид разработанной пользовательской формы

Надписи на элементах управления можно задавать и двойным щелчком на элементе при разработке формы.

ЗАДАНИЕ
Повторить все разобранные примеры



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: