End With

With ListBox1

Dim A(2, 1) As String

End With

With ListBox1

End With

With ListBox1

Dim a(1 To 2) As Integer

B)

End With

With ListBox1

End With

With ListBox1

.AddItem "Июнь"

.AddItem "Июль"

.AddItem "Август"

2 Массивом, если список состоит из одной колонки

a)

.List = Array("Июнь", "Июль", "Август")

a(1) = 1: a(2) = 2

ListBox1.List = a

 

3 Из диапазона, в который предварительно введены элементы списка. Результат выбора (индекс выбранной строки) выводится в ячейку С1:

 

.ColumnCount=2

.RowSource=" A1:B4"

. ControlSource="C1"

 

4 Поэлементно, если список состоит из нескольких колонок, например двух:

 

.ColumnCount =2

.AddItem “Июнь”

.List(0,1)= “Сессия”

.AddItem “Июль”

.List(1,1)= “Каникулы”

.AddItem “Август”

.List(2,1)= “Каникулы”

5 Массивом если список состоит из нескольких колонок, например двух:

А(0, 0) = "Июнь” : А(0, 1) = “Сессия”

А(1, 0) = "Июль” : А(1, 1) = “Каникулы”

А(2, 0) = " Август ” : А(2, 1) = “Каникулы”

.ColumnCount =2

.List=A

Пример 1 (ListBox). Создадим приложение, которое позволит подсчитать сумму или произведение выбранных в списке чисел.


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

Рисунок 16 – Проектируемая пользовательская форма

 

Frame1 (рамка) используется для визуальной группировки элементов. Свойство Caption – отображает надпись рамки.

OptionButton (переключатель) – позволяет выбрать один из нескольких взаимоисключающих параметров. Переключатели обычно отображаются группами, обеспечивая возможность выбора альтернативного варианта. Свойство Caption – отображает надпись рядом с переключателем. Свойство Value возвращает True, если переключатель выбран, и False в противном случае.

 

Таблица 22

Элемент управления Предназначение
CommandButton1 (кнопка) Нажатие на кнопку запускает процедуру обработки события (Private Sub CommandButton1_Click()), которая определяет, какой переключатель выбран. В зависимости от выбранного переключателя производится действие над выбранными в списке числами. Найденное значение выводится в поле TextBox1.
CommandButton2 (кнопка) Нажатие на кнопку запускает процедуру обработки события (Private Sub CommandButton2_Click()), которая закрывает диалоговое окно
TextBox1 (поле) В это поле будет выводиться результат. Поле сделаем недоступным для пользователя, т.е. пользователь не сможет ни ввести, ни скорректировать данные в этом поле
Label1 (надпись) Пояснительная надпись для поля вывода
Frame1 (рамка) Используется для группировки переключателей
OptionButton1(переключатель) OptionButton2(переключатель) Выбор переключателя указывает, какая операция будет выполняться над выбранными числами

Форма создана, осталось только в модуле формы набрать код.

Private Sub CommandButton1_Click() Dim i As Integer Dim n As Integer Dim Сумма As Double Dim Произведение As Double Dim Результат As Double If OptionButton1.Value = True Then Сумма = 0 With ListBox1 For i = 0 To .ListCount - 1 If .Selected(i) = True Then Сумма = Сумма + .List(i) End If Next i End With Результат = Сумма End If If OptionButton2.Value = True Then Произведение = 1 With UserForm1.ListBox1 For i = 0 To .ListCount - 1 If .Selected(i) = True Then Произведение = Произведение * .List(i) End If Next i End With Результат = Произведение End If TextBox1.Text = CStr(Результат) End Sub     При выборе первого переключателя вычисляется сумма выбранных элементов     При выборе второго переключателя вычисляется произведение выбранных элементов Результат выводится в поле TextBox1
Private Sub CommandButton2_Click() UserForm1.Hide End Sub Процедура закрытия диалогового окна
Private Sub UserForm_Initialize()     With ListBox1   .List = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) .ListIndex = 0 .MultiSelect = fmMultiSelectMulti   End With   With UserForm1.OptionButton1 .Value = True     .Caption = "Сумма" .ControlTipText = "Сумма выбранных элементов" End With OptionButton2.ControlTipText= "Произведение выбранных элементов" CommandButton2.ControlTipText = "Выход из программы" CommandButton1.ControlTipText = "Нахождение результата"   UserForm1.Caption = "Операции над элементами списка" OptionButton2.Caption = "Произведение" Label1.Caption = "Результат" CommandButton1.Caption = "Вычислить" CommandButton2.Caption = "Отмена" Frame1.Caption = "Операция"   TextBox1.Enabled = False   End Sub Процедура инициализации диалогового окна     Заполнение списка   Установка режима выбора     При загрузке формы первоначально будет выбран переключатель «Сумма»   Задание текста всплывающих подсказок у элементов управления   Задание заголовка пользовательской формы Инструкции задают видимые надписи для объектов     Инструкция делает TextBox1 недоступным для пользователя

После конструирования формы и написания кода в модуле формы, выберем команду Run,и на экране появится форма, представленная на рисунке 17

Рисунок 17 – Спроектированная форма

 

Private Sub CommandButton1_Click()

Dim i As Integer

Dim n As Integer

Dim Сумма As Double

Dim Произведение As Double

Dim Результат As Double

 

If OptionButton1.Value = True Then

Сумма = 0

With ListBox1

For i = 0 To .ListCount - 1

If .Selected(i) = True Then

Сумма = Сумма + .List(i)

End If

Next i

End With

Результат = Сумма

End If

 

If OptionButton2.Value = True Then

Произведение = 1

With UserForm3.ListBox1

For i = 0 To .ListCount - 1

If .Selected(i) = True Then

Произведение = Произведение * .List(i)

End If

Next i

End With

Результат = Произведение

End If

 

TextBox1.Text = CStr(Результат)

 

End Sub

 

Private Sub CommandButton2_Click()

UserForm3.Hide

ListBox1.Clear

End Sub

 

Private Sub ListBox1_Change()

 

End Sub

 

Private Sub ListBox1_Click()

 

End Sub

 

Private Sub UserForm_Click()

 

End Sub

 

Private Sub UserForm_Initialize()

 

With ListBox1

.List = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

.ListIndex = 0

.MultiSelect = fmMultiSelectMulti

End With

 

With UserForm3.OptionButton1

.Value = True

.Caption = "Сумма"

.ControlTipText = "Сумма выбранных элементов"

End With

 

OptionButton2.Caption = "Произведение"

OptionButton2.ControlTipText = "Произведение выбранных элементов"

 

CommandButton1.Caption = "Вычислить"

CommandButton1.ControlTipText = "Нахождение результата"

 

CommandButton2.Caption = "Отмена"

CommandButton2.ControlTipText = "Выход из программы"

 

UserForm1.Caption = "Операции над элементами списка"

 

Label1.Caption = "Результат"

 

Frame1.Caption = "Операция"

 

TextBox1.Enabled = False

 

End Sub

 

Оператор With –выполняет несколько операторов для единственного объекта без повторного указания имени объекта.

Синтаксис: