№ п/п

Условие задачи

Исходные  данные

8

9

10

11

12

13

14

15


В программном коде записать основную программу и процедуру типа Sub. В процедуре вычислить сумму или произведение. Вторую кнопку использовать для решения этой же задачи с функцией пользователя.

8. ФОРМЫ ПОЛЬЗОВАТЕЛЯ

Управление электронными документами в Excel часто производится с помощью вспомогательных диалоговых окон языка VBA, которые в проекте документа называются пользовательскими формами UserForms.

Для того чтобы в проект документа включить диалоговую пользовательскую форму, необходимо в редакторе VBA выполнить команду Вставка/UserForm (Insert/UserForm). После этого в проект документа добавится объект UserForm1, а на экране появится заготовка для формы пользователя с именем UserForm1 и панель элементов Toolbox, почти совпадающая с панелью инструментов Элементы управления. 

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

8.1. Свойства и методы

Состояние объекта можно изменить двумя способами: либо изменить значение свойств (Properties), принадлежащих объекту (например, для текстового окна изменить его размер, цвет, тип шрифта и т. п.), либо применить к нему некоторые действия, так называемые методы (Methods), определенные для данного объекта (например, показать форму, сдвинуть текстовое поле и т. п.).

Задание конкретных значений свойств объекта осуществляется в окне свойств или программным путем. В последнем случае используется следующий синтаксис:

НЕ нашли? Не то? Что вы ищете?

объект. свойство = значение

Например, можно задать заголовок окна (свойство Caption)  формы с именем UserForm1 (свойство Name) в программном коде следующим образом:

UserForm1.Caption = «Список сотрудников»

Чтобы задать нужный размер букв (свойство Size) для определенного шрифта (свойство Font), составляющих заголовок формы, необходимо записать следующую строку в программном коде:

TextBox1.Font. Size = 14

Для применения некоторого метода действия на объект, используется следующий синтаксис:

объект. метод

Например, для появления на экране пользовательской формы UserForm1 следует в программном коде использовать метод Show (UserForm1.Show), а чтобы убрать форму – метод Hide.

Перечислим еще некоторые свойства объектов.

BackColor – цвет фона. Выбрав свойство в окне свойств, необходимо щелкнуть в правой части, появится маленькая кнопка, нажатие на которую вызовет появление палитры цветов. Цвет выбирают щелчком квадратика с нужной окраской. При изменении свойства в программе его значение задается функцией RGB. В этой функции задаются цвета цифрами от 0 до 255: оттенки красного на первом месте (red), оттенки зеленого (green) – на втором, оттенки синего (blue) – на третьем.

Например, можно создать форму UserForm1 и на рабочем листе создать кнопку со следующей программой:

Private Sub CommandButton1_Click()

UserForm1.BackColor = RGB(255, 0, 0)

UserForm1.Show

End Sub

При выполнении этой программы появляется форма, окрашенная в красный цвет.

Caption  – заголовок. Заголовком формы является текст, выводимый в строку заголовка окна формы.

Font – шрифт. Для задания значения этому свойству необходимо выбрать его в списке свойств и раскрыть стандартное диалоговое окно выбора шрифтов, нажав кнопку с многоточием. При установке шрифта программным путем используются следующие свойства: FontBold – полужирный,  Fontlitalic – курсив, FontUnderline – подчеркнутый. Они принимают значения True или False. Например, оператор UserForm1.TextBox1.FontBold = True определяет шрифт в текстовом окне как полужирный.

FontSize – размер шрифта. ForeColor – основной цвет. Это свойство определяет цвет текста. Height – высота окна формы, Width – ширина окна формы. Name – имя формы. Это  свойство  определяет имя формы, по которому можно обращаться к ней в программном  коде.

Picture – отображение рисунка. Свойство позволяет отобразить на форме рисунок, файл с которым можно открыть, нажав кнопку в правой части. 

Top – координата верхней границы, Left – координата левой границы окна формы на экране.

Элементы управления, такие как кнопки, поля, надписи и др., имеют и вышеперечисленные свойства и собственные свойства. Например, текстовое поле имеет свойство Text, в котором записывается содержимое поля. Полный перечень свойств объектов можно найти в справочной системе VBА.

8.2. Примеры использования форм

Пример 8.1. Рассмотрим пример работы с формой и элементами управления. На рабочем листе создадим кнопку с именем Работа с формой и форму, изображенную на рис. 8.1.

Рис. 8.1. Форма пользователя

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

Программа для первой кнопки Положение 1:

Sub CommandButton1_Click()

UserForm1.TextBox1.Text = "Привет"

UserForm1.TextBox1.Top = 10

UserForm1.TextBox1.Left = 10

UserForm1.TextBox1.FontSize = 10

UserForm1.TextBox1.ForeColor = RGB(0, 0, 255)

End Sub

Здесь в текстовое окно помещается слово «Привет». Программным путем меняются свойства Top и Left, определяющие координаты верхнего левого угла текстового поля, выбирается размер шрифта в поле и цвет.  RGB(0, 0, 255) определяет красный цвет. Программа для второй кнопки Положение 2 меняет расположение поля, размер и цвет текста в поле:

Sub CommandButton2_Click()

UserForm1.TextBox1.Text = "Привет"

UserForm1.TextBox1.Top = 80

UserForm1.TextBox1.Left = 10

UserForm1.TextBox1.FontSize = 20

UserForm1.TextBox1.ForeColor = RGB(255, 0, 0)

End Sub

Программа третьей кнопки убирает форму с экрана:

Sub CommandButton3_Click()

UserForm1.Hide

End Sub

Программа для кнопки Работа с формой на рабочем листе вызовет появление формы на экране:

Sub CommandButton3_Click()

UserForm1.Show

End Sub

С нажатия этой кнопки можно начать работу. На появившейся форме попеременно нажимая кнопки Положение 1 и Положение 2, можно понаблюдать за изменениями на экране.

Пример 8.2. Рассмотрим пример движения элемента управления через определенные промежутки времени.

Пусть на форме имеется текстовое поле. Программа, приведенная ниже, производит следующие действия: поле окрашивается в зеленый цвет, определяется положение поля на форме и оно меняется 7 раз через одну секунду:

Sub CommandButton1_Click()

UserForm1.TextBox1.BackColor = RGB(0, 255, 0)

For i = 10 To 70 Step 10

UserForm1.TextBox1.Top = 10 + i

UserForm1.TextBox1.Left = 10 + i

If Application. Wait(Now + TimeValue("0:00:1")) Then

End If

Next

End Sub

Встроенная функция Now определяет текущее время, с помощью встроенной функции TimeValue задается интервал времени (в нашем примере – 1 с), метод Wait в приложении (Application) переводит компьютер в режим ожидания на некоторый отрезок времени.

Пример 8.3. Пусть разработана форма, представленная на рис. 8.2.

Рис. 8.2. Ввод информации и вывод результатов

Программа для кнопки Вывод результатов вводит значение х из верхнего поля, рассчитывает значения а, b, z и выводит их в поля TextBox1, TextBox2, а значение z выводит в надпись Label2, расположенную в нижней части формы UserForm1:

Sub CommandButton1_Click()

Dim x As Single, y As Single

Dim a As Single, b As Single, z As Single

x = Val(UserForm1.TextBox1.Text)

y = Format(x, "####.##")

a = (x + y) ^ 2  :  b = Sin(a) - Sin(b) ^ 3

UserForm1.TextBox2.Text = "a=" & a

UserForm1.TextBox3.Text = "b=" & b

UserForm1.Label2.Caption = "z = " & 5 * Sin(10) / 3

End Sub

Программу можно запустить нажатием кнопки Run на листе редактора Visual Basic.

8.3. Работа со списками

VBA предоставляет возможность использования элементов управления, служащих для хранения и обработки одномерных массивов. Это простые списки ListBox и комбинированные (раскрывающиеся) списки ComboBox. Комбинированные списки, в отличие от простых, содержат, кроме собственно списка, еще и текстовое поле, через которое можно записывать и вводить данные в список, добавляя последовательно к существующим новые элементы массива.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36