Размещение элементов управления в форме
Чтобы разместить все необходимые элементы управления в форме, выполните следующую последовательность действий:
1. Выберите форму, в которую требуется добавить элементы управления. При необходимости выведите набор инструментов.
2. Нажмите на панели инструментов кнопку требуемого элемента, а затем щелкните по любому месту формы. В форме выводится элемент управления.
3. Перетащите элемент управления в требуемую позицию.
4. Измените размеры элемента управления, перетащив его рамку. То же самое можно сделать и с формой.
Использование полей. Элемент управления TextBox (Поле) позволяет ввести в форму информацию, которую затем можно использовать в программе. Кроме того, с помощью этого объекта имеется возможность вывести данные.
После создания элемента управления лучше сразу присвоить ему новое имя (свойство Name). Если не указать название поля, то используется имя, заданное по умолчанию.
Для установки и получения содержимого поля используется свойство Value. Данное свойство имеет тип Variant. Приведем фрагмент, в котором в поле TxtControl заносится значение "abcdef": TxtControl.Value = "abcdef"
В следующем фрагменте в поле заносится число 100: TxtControl.Text = 100
Для получения значения элемента управления TextBox можно использовать следующий фрагмент:
Dim varResult As Variant
varResult = txtControl.Value
Использование надписей. Элемент управления Label (Надпись) используется для вывода текста в форме. Наиболее важным свойством является Caption, содержащее текст надписи. Свойство Caption можно задать в окне свойств, а также в тексте программы:
labControl.Caption = "Адрес"
Использование кнопок. Элемент управления CommandButton (Кнопка) инициирует выполнение некоторого действия. С помощью свойства Caption имеется возможность задать текст, который выводится на кнопке.
С нажатием кнопки можно связать выполнение некоторого действия, если назначить ее событию Click процедуру обработки.
Использование переключателей. Элемент управления OptionButton (Переключатель) используется для предоставления выбора одного варианта из многих. На заданный момент в группе может быть выбран только один переключатель. Отмена выбора одного переключателя при выборе другого происходит автоматически.
Для определения выбранного переключателя используется свойство Value. Если значение данного свойства равно True, значит данный переключатель включен, если False - значит выключен.
Кроме перечисленных, существуют и другие элементы управления. Исчерпывающую информацию по ним можно получить в справочной системе по VBA.
После размещения, выравнивания и задания размеров и свойств элементов управления форма выглядит весьма привлекательно. Однако это не имеет значения, если с элементами управления не связано никакого кода.
Рассмотрим примеры ситуаций, в которых обязательно нужно написать код для формы:
- Запуск выполнения определенной задачи при нажатии кнопки;
- Запоминание выделенного элемента в списке;
- Отмена доступа к элементу управления, например, если выбран переключатель, который запрещает изменение значения в этом элементе.
В VBA очень просто связать объект в форме с кодом. Для выполнения данной операции выполните одно из следующих действий:
- Дважды щелкните по элементу управления в форме. Появляется окно модуля для выбранного объекта. Выберите событие, для которого требуется создать процедуру обработки, в списке, расположенном в верхнем правом углу окна модуля. Введите текст процедуры. Для перехода к другому объекту выберите этот элемент управления в списке, расположенном в верхнем левом углу окна модуля.
- Щелкните по элементу управления и выберите команду Вид/Программа в меню редактора VBA.
Часто при разработке формы требуется посмотреть на ее внешний вид. По мере разработки формы, ее можно просматривать. Для этого необходимо открыть форму и либо нажать клавишу <F5>, либо воспользоваться командой Запуск\Запуск подпрограммы/ формы.
ПРАКТИЧЕСКОЕ УПРАЖНЕНИЕ
Создадим экранную форму «Калькулятор», которая могла бы производить основные арифметические действия. Окончательный вид нашей разработки показан на рисунке 10.2.
Для выполнения этого задания, выполните последовательно следующие этапы:
1. Перейдите в редактор VBA и откройте окно проекта, если до этого оно было закрыто.
2. Добавьте в проект новую форму. Присвойте свойству Name и Caption данного объекта значение "Калькулятор".
Рисунок 10.2
3. Добавьте в форму три поля ввода (TextBox) и расположите их как показано на рис. 5.3. Присвойте им соответственно следующие имена: "txt1", "txt2" и "txtResult". Установите для этих объектов следующие значения свойств:
txt1 Value = 0
txt2 Value = 0
txtResult Value = 0
Enabled = False
4. Добавьте в форму четыре переключателя (OptionButton). Установите для этих объектов следующие значения свойств:
OptionButton1 Name = Сложение
Caption = " + "
Value = True
OptionButton2 Name = Вычитание
Caption = " - "
OptionButton3 Name = Деление
Caption = " / "
OptionButton4 Name = Умножение
Caption = " * "
5. Добавьте в форму кнопку (CommandButton) и установите для нее значения следующих свойств:
CommandButton Name = Выход
Caption = Выход
При нажатии данной кнопки будет осуществляться выход из нашего Калькулятора. Для этого нам необходимо связать некоторый код с событием Click этого объекта. Щелкните два раза на этой кнопке левой клавишей мыши и в открывшимся окне модуля введите следующую процедуру:
Private Sub Выход_Click()
Калькулятор.Hide
End Sub
6. Добавьте в форму кнопку (CommandButton) и установите для нее значения следующих свойств:
CommandButton Name = Вычислить
Caption = Вычислить
При нажатии данной кнопки, в поле txtResult будет выводиться результат вычислений. Код программы, для события click данного объекта выглядит следующим образом:
Private Sub Вычислить_Click()
Dim x As Variant
Dim y As Variant
Dim z As Variant
x = CDbl(txt1.Value)
y = CDbl(txt2.Value)
If Сложение.Value = True Then z = x + y
If Вычитание.Value = True Then z = x - y
If Умножение.Value = True Then z = x * y
If Деление.Value = True Then
If y = 0 Then
z = 0
MsgBox ("Деление на ноль !!!")
Else
z = x / y
End If
End If
txtResult.Value = CStr(z)
End Sub
7. Добавьте в форму надписи (Label), в соответствии с рисунком 10.2.
В принципе, мы уже выполнили нашу цель. Можете теперь запустить эту форму на выполнение и поэкспериментировать. Однако, при работе в Excel, было бы очень неудобно каждый раз, когда нам нужно воспользоваться калькулятором, запускать редактор VBA. Гораздо проще было бы, если бы на рабочем листе Excel была кнопка, при нажатии на которую активизировалась бы наша форма.
Для этого выполните следующую последовательность действий:
1. Закройте окно редактирования формы и создайте модуль (команда главного меню Вставка/Модуль).
2. В открывшемся окне модуля введите следующий фрагмент кода:
Sub RunForm()
Калькулятор.Show
End Sub
3. Перейдите в Microsoft Excel и выберите тот лист рабочей книги, на который мы будем добавлять кнопку запуска калькулятора.
4. При добавлении любого элемента управления на лист рабочей книги, нам необходимо воспользоваться панелью инструментов Формы. Чтобы вывести ее на экран, выберите в главном меню команду Вид/Панели инструментов/Формы.
5. Добавьте на рабочий лист элемент управления Кнопка. При этом автоматически активизируется окно Назначить макрос объекту. Т. е. мы должны указать, какая выполнится подпрограмма, при нажатии на данную кнопку. Выбираем из списка макрос RunForm и нажимаем клавишу ОК.
6. Закроем панель инструментов Формы.
Теперь, когда возникнет необходимость выполнить какие-либо расчеты, мы просто нажмем кнопку на рабочем листе Excel.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. В чем достоинства Visual Basic?
2. Чем характеризуются объекты?
3. Какими способами можно запустить Visual Basic?
4. Какие варианты продолжения работы после входа в Visual Basic?
5. Как открыть окно «Проводника проектов»?
6. Как открыть формы?
7. Перечислите объекты, которые используются в форме?
8. Как открыть окно свойств?
9. Как устроено окно свойств?
10. Назвать основные части окна Visual Basic?
11. Как сохранить проект?
12. Как переводятся на русский язык слова Label, Caption, Command, Button, Form, design, run. Поясните каждое слово.
13. Как принято называть файлы, в которых сохраняются формы, проекты?
14. С помощью какой команды главного меню можно установить «Панель инструментов»?
15. Как открыть уже готовый проект?