Внешний вид формы показан на рис. 17.
Dim i As Byte, n As Byte
_______________________________________________________________________________________________________
Private Sub CommandButton1_Click() n = TextBox1.Text
Randomize Sheets(“Лист1”).Select
‘заполняем ячейки листа случайными числами
For i = 1 To n
Cells(1, i) = Int(Rnd * 20 – 10) Next i
End Sub
_______________________________________________________________________________________________________
Private Sub CommandButton2_Click() Dim s As Integer, max As Integer
s = 0
max = –100 For i = 1 To n
s = s + Cells(1, i) ‘вычисляем сумму
‘вычисляем максимум
If Cells(1, i) > max Then max = Cells(1, i) Next i
‘выводим результаты на форму
Label2.Caption = “s=” & s Label3.Caption = “max=” & max
End Sub
На форме расположен набор из двух вкладок, метка и кнопка. При выборе вкладки в метке выводится текст приветствия, а на
|
кнопке отображается надпись |
|||
|
на соответствующем языке (в |
|||
|
зависимости |
от |
выбранной |
|
|
вкладки). Внешний вид |
|||
|
формы показан на рис. 18. |
|||
|
Для |
того |
чтобы |
|
Рис. 18. Внешний вид формы |
переименовать |
вкладку, |
||
нужно щелкнуть |
по ней |
|||
|
||||
31
правой кнопкой мыши и выбрать команду Rename. При загрузке формы должна активизироваться первая вкладка. Чтобы в момент загрузки формы наступало событие Change для объекта TabStrip1 (происходила смена вкладок) следует на стадии проектирования в окне свойств установить значение свойства Value этого объекта, равным 1 (выбрать вторую вкладку).
Private Sub UserForm_Activate()
TabStrip1.Value = 0 ‘переходим на первую вкладку
End Sub
_______________________________________________________________________________________________________
Private Sub TabStrip1_Change() |
‘при выборе вкладки |
If TabStrip1.Value = 0 Then |
‘проверяем вкладку |
Label1.Caption = “Добро пожаловать!”
CommandButton1.Caption = “Вперед”
End If
If TabStrip1.Value = 1 Then
Label1.Caption = “Welcome!”
CommandButton1.Caption = “Next”
End If
End Sub
На форме расположен набор из двух страниц. На странице «ФИО» размещены метки с пояснительным текстом, три поля для ввода данных и кнопка «Далее», считывающая введенные данные и осуществляющая переход на вторую страницу. На странице «Паспорт» размещены метки с пояснительным текстом, два поля для ввода данных и кнопка «Ввод», формирующая отчет по введенным данным на рабочем листе Excel. Внешний вид формы показан на рис. 19.
32
Рис. 19. Внешний вид формы для разных страниц
Dim i As Integer, a As String, b As String, c As String
_______________________________________________________________________________________________________
Private Sub UserForm_Activate() i = 1 ‘счетчик номера строки
MultiPage1.Value = 0 ‘выбираем первую страницу
End Sub
_______________________________________________________________________________________________________
Private Sub CommandButton1_Click() ‘считываем данные из полей
а = TextBox1.Text
b = TextBox2.Text
c = TextBox3.Text
TextBox1.Text = “” ‘очищаем поле TextBox2.Text = “”
TextBox3.Text = “”
MultiPage1.Value = 1 ‘переходим на вторую страницу
End Sub
_______________________________________________________________________________________________________
Private Sub CommandButton2_Click()
‘считываем данные из полей и выводим их на рабочий лист
Cells(i, 4) = TextBox4.Text & “ ” & TextBox5.Text Cells(i, 1) = a
Cells(i, 2) |
= b |
|
Cells(i, 3) |
= с |
|
TextBox4.Text = “” |
‘очищаем поле |
|
TextBox5.Text = “” |
|
|
MultiPage1.Value = 0 |
‘возвращаемся на первую страницу |
|
i = i + 1 |
|
‘увеличиваем счетчик строк |
End Sub
33
На форме расположены три метки, полоса прокрутки и счетчик. При прокрутке или перемещении бегунка на полосе прокрутки или при прокрутке счетчика в метках отображаются соответствующие значения свойства Value. Внешний вид формы после изменения счетчика и переноса бегунка на полосе вправо, а затем прокрутки полосы влево показан на рис. 20.
Рис. 20. Внешний вид формы
Объекты и их свойства, определяемые на этапе проектирования в окне свойств, показаны в табл. 7.
Таблица 7
Перечень объектов и их свойств
Объекты |
Свойства |
Значения свойств |
Label1, Label2, Label3 |
Caption |
– |
|
BorderStyle |
1 |
|
TextAlign |
2 |
ScrollBar1 |
SmallChange |
1 |
|
LargeChange |
5 |
|
Max |
100 |
SpinButton1 |
SmallChange |
1 |
|
Max |
100 |
Событие Change происходит после каждого изменения значения полосы прокрутки. Если перетаскивать бегунок с помощью мыши, новое значение полосы прокрутки будет сгенерировано только после того, как отпустить кнопку мыши. Событие Scroll изменяет значение полосы прокрутки сразу. У счетчика событие Scroll отсутствует.
Dim s As Integer |
‘вспомогательная переменная |
34
_______________________________________________________________________________________________________
Private Sub ScrollBar1_Change()
s = ScrollBar1.Value ‘считываем значение полосы прокрутки
Label1.Caption = “Значение после события Change ” & s
End Sub
_______________________________________________________________________________________________________
Private Sub ScrollBar1_Scroll() s = ScrollBar1.Value
Label2.Caption = “Значение после события Scroll ” & s
End Sub
_______________________________________________________________________________________________________
Private Sub SpinButton1_Change()
Label3.Caption = SpinButton1.Value
End Sub
На форме расположены 4 выключателя, 2 рисунка, 2 метки. Выключатель «visible» делает первый рисунок видимым или не видимым. Выключатель «left» смещает второй рисунок влево на 10 пикселей и обратно. Выключатель «color» делает цвет первой надписи красным или белым. Выключатель «size» увеличивает размер шрифта во второй надписи до 14 пт или возвращает прежний размер 10 пт. Внешний вид формы показан на рис. 21.
Рис. 21. Внешний вид формы
Private Sub ToggleButton1_Change()
If ToggleButton1.Value = True Then
Image1.Visible = True |
‘показываем рисунок |
Else |
|
Image1.Visible = False |
‘скрываем рисунок |
End If |
|
35