Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Excel включает 15 различных элементов управления, которые можно использовать на UserForms. Этот раздел содержит различные примеры использования этих элементов управления программными средствами.
Примечание Код VBA, эта статья не содержит примеры, которые влияют на свойства и события для элементов управления. Если необходимо, можно использовать окно Свойства для просмотра списка свойств, доступных для элемента управления. Чтобы просмотреть список свойств, в меню Вид , щелкните Окно свойств.
Использование режима конструктора для редактирования элементов управления
При использовании редактора Visual Basic для создания диалогового окна в режиме конструктора. В режиме конструктора можно редактировать элементы управления, и можно изменить свойства элемента управления на пользовательской форме в окне «Свойства». Чтобы открыть окно Свойства, в меню Вид выберите пункт Окно свойств.
Примечание Находясь в режиме конструктора элементов управления не отвечают на события. При запуске диалогового окна для отображения, пользователи видят его как программа находится в режиме выполнения. Когда UserForm выгружается из памяти не сохраняются изменения, внесенные в свойства элемента управления в режиме выполнения.
Примечание Элементы управления реагировать на события в режиме выполнения.
Обращение к элементам управления на пользовательской форме
При обращении к элементам управления программными средствами зависит от типа листа модуля Visual Basic, где выполняется код. Если код выполняется из общего модуля, имеет следующий синтаксис:
UserFormName.Controlname.Property = Значение
Например если необходимо установить свойство Text элемента управления TextBox с именем TextBox1 на пользовательской форме с именем UserForm1 значение Bob, используйте следующий код:
UserForm1.TextBox1.Text = "Bob"
Если код в процедуре, которая инициируется событие элемента управления или UserForm, нет необходимости ссылаться на имя пользовательской формы. Вместо этого используйте следующий код:
TextBox1.Text = "Bob"
При присоединении к объекту код, код присоединен к одному из этого объекта события. Во многих примерах в данной статье добавьте код в событие Click элемента управления CommandButton объекта.
Элементы управления Label
Элементы управления Label в основном используются для описания других элементов управления на пользовательской форме. Элемент управления Label не может редактироваться пользователем во время выполнения пользовательской формы. Используйте свойство заголовка для установки или для возврата текста в элементе управления Label . Другие часто используемые свойства форматирования элемента управления Label включают свойства шрифта и цвет текста .
Как использовать оператор WITH для форматирования элемента управления Label
Чтобы использовать оператор WITH для изменения свойств элемента управления Label , выполните следующие действия.
Запустите Excel и откройте новую книгу.
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления Label для пользовательской формы.
Добавьте элемент управления CommandButton пользовательской формы.
Дважды щелкните элемент управления CommandButton , чтобы открыть окно кода для пользовательской формы.
В окне кода введите следующий код для события CommandButton1 Click :
Private Sub CommandButton1_Click()
With Label1
' Set the text of the label.
.Caption = "This is Label Example 1"
' Automatically size the label control.
.AutoSize = True
.WordWrap = False
' Set the font used by the Label control.
.Font.Name = "Times New Roman"
.Font.Size = 14
.Font.Bold = True
' Set the font color to blue.
.ForeColor = RGB(0, 0, 255)
End With
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
Нажмите CommandButton.
Текст "это пример 1" появляется в элементе управления Label в полужирный шрифт Times New Roman с размером шрифта 14.
Элементы управления TextBox
Элементы управления TextBox часто используются для ввода данных пользователем. Свойство Text содержит записи, сделанные в элементе управления TextBox .
Использование элемента управления TextBox для проверки пароля
Если значение свойства PasswordChar элемента управления TextBox , становится управления «замаскированы edit». Символ, который указывается визуально заменяется каждый символ, который пользователь введет в элемент управления TextBox . Чтобы использовать элемент управления TextBox для проверки пароля, выполните следующие действия.
Запустите Excel и откройте новую книгу.
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления TextBox для пользовательской формы.
В меню Вид выберите команду Свойства для отображения окна «Свойства».
Введите в поле свойства PasswordChar элемента управления TextBox *.
Примечание Изменения значения звездочку.
Добавьте элемент управления CommandButton пользовательской формы.
Дважды щелкните элемент управления CommandButton , чтобы открыть окно кода для пользовательской формы.
В окне кода введите следующий код для события CommandButton1 Click :
Private Sub CommandButton1_Click()
If TextBox1.Text <> "userform" Then
MsgBox "Password is Incorrect. Please reenter."
TextBox1.Text = ""
TextBox1.SetFocus
Else
MsgBox "Welcome!"
Unload Me
End If
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
Введите пароль пользовательской формы в элементе управления TextBox .
Щелкните элемент управления CommandButton.
Например пароль «userform». При вводе неверного пароля, появляется окно сообщения, которое указывает, что указан неверный пароль установлен элемент управления TextBox и затем повторно введите пароль. При вводе правильного пароля появится приветственное сообщение и Пользовательская форма закрывается.
Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
213555
(http://support.microsoft.com/kb/213555/)
XL2000: Отсутствует свойство проверки данных для UserForm текстовые поля
Элементы управления CommandButton
Для запуска процедуры VBA можно использовать элемент управления CommandButton . Процедуры VBA обычно присоединяется к событию Click элемента управления CommandButton . Чтобы использовать элемент управления CommandButton , процедуры, запускаемую при возникновения события Click , выполните следующие действия.
Запустите Excel и откройте новую книгу.
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления CommandButton пользовательской формы.
Дважды щелкните элемент управления CommandButton , чтобы открыть окно кода для пользовательской формы.
В окне кода введите следующий код:
Private Sub CommandButton1_Click()
red = Int(Rnd * 255)
green = Int(Rnd * 255)
blue = Int(Rnd * 255)
CommandButton1.BackColor = RGB(red, green, blue)
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
Цвет фона элемента управления CommandButton1 изменяется каждый раз, щелкните его.
Дополнительные сведения об элементе управления CommandButton щелкните следующие номера статей базы знаний Майкрософт:
213572
(http://support.microsoft.com/kb/213572/)
XL2000: Нажать кнопку "Отмена" не может выйти из пользовательской формы
213743
(http://support.microsoft.com/kb/213743/)
XL2000: Как установить по умолчанию кнопке на пользовательской форме
Элементы управления ListBox
Элемент управления ListBox предназначен для предоставить пользователю список элементов для выбора. Можно хранить список элементов для элемента управления ListBox на листе Excel. Чтобы заполнить элемент управления ListBox с диапазона ячеек на листе, используйте свойство Источник строк . При использовании свойства MultiSelect , можно настроить элемент управления ListBox принять множественный выбор.
Получение текущего выделенного элемента из элемента управления ListBox
Свойство Value элемента управления ListBox используется для возврата текущего выделенного элемента. Для возврата текущего выделенного элемента в одиночный выбор элемента управления ListBox , выполните следующие действия.
Запустите Excel и откройте новую книгу.
В ячейках ячейки a1 Dan: a5 на листе Sheet1 введите значения, которые требуется использовать для заполнения элемента управления ListBox .
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления ListBox для пользовательской формы.
Дважды щелкните элемент управления ListBox для отображения окна кода для элемента управления ListBox .
В окне кода введите следующий код для события ListBox1 Click :
Private Sub ListBox1_Click()
MsgBox ListBox1.Value
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
При выборе элемента в списке появится сообщение с текущего выбранного элемента.
Получение выбранных элементов в нескольких выбора элемента управления ListBox
Для определения элементов, выбранных в выделить несколько элементов управления ListBox , необходимо перебрать все элементы в списке и затем запросить свойство Selected . Для возвращения элементов, выделенных в выделить несколько элементов управления ListBox , выполните следующие действия.
Запустите Excel и откройте новую книгу.
В ячейках ячейки a1 Dan: a5 на листе Sheet1 введите значения, которые требуется использовать для заполнения элемента управления ListBox .
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления ListBox для пользовательской формы.
В меню Вид выберите команду Свойства , чтобы открыть окно свойств.
Введите значения, которые определены для следующих свойств элемента управления ListBox :
Property Value
----------- -----------------------
MultiSelect 1 - frmMultiSelectMulti
RowSource Sheet1!A1:A8
Добавьте элемент управления CommandButton пользовательской формы.
Дважды щелкните элемент управления CommandButton , чтобы открыть окно кода для пользовательской формы.
В окне кода введите следующий код для события CommandButton1 Click :
Sub CommandButton1_Click ()
' Loop through the items in the ListBox.
For x = 0 to ListBox1.ListCount - 1
' If the item is selected...
If ListBox1.Selected(x) = True Then
' display the Selected item.
MsgBox ListBox1.List(x)
End If
Next x
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
Выберите один или несколько элементов в списке.
Нажмите кнопку CommandButton1.
После нажатия кнопки CommandButton1каждого элемента, выбранного в элементе управления ListBox отображается в отдельном окне сообщений. После всех выбранных элементов отображается в окне сообщения, пользовательская форма автоматически закрывается.
Как с помощью свойства Источник строк для заполнения элемента управления ListBox ячейками на листе
Использование свойства Источник строк для заполнения элемента управления ListBox из диапазона ячеек на листе, выполните следующие действия.
Запустите Excel и откройте новую книгу.
В ячейках ячейки a1 Dan: a5 на листе Sheet1 введите значения, которые требуется использовать для заполнения элемента управления ListBox .
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления ListBox для пользовательской формы.
Добавьте элемент управления CommandButton пользовательской формы.
Дважды щелкните элемент управления CommandButton , чтобы открыть окно кода для пользовательской формы.
В окне кода введите следующий код для события CommandButton1 Click :
Private Sub CommandButton1_Click()
ListBox1.RowSource = "=Sheet1!A1:A5"
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
ПримечаниеListBox1 не содержит никаких значений.
Нажмите кнопку CommandButton1.
Значения в ячейки a1: a5 ячеек на листе Sheet1 заполняется ListBox1 .
Как заполнить элемент управления ListBox значениями в массиве
В этом примере показано, как заполнить элемент управления ListBox с переменной массива. Необходимо назначить значения из массива один элемент управления ListBox одновременно. Как правило этот процесс требует использования циклические структуры, например для...Далее цикла. Чтобы заполнить элемент управления ListBox с переменной массива, выполните следующие действия.
Запустите Excel и откройте новую книгу.
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления ListBox для пользовательской формы.
В меню Вставка выберите пункт модуль для вставки в лист модуля.
В окне кода введите следующий код:
Sub PopulateListBox()
Dim MyArray As Variant
Dim Ctr As Integer
MyArray = Array("Apples", "Oranges", "Peaches", "Bananas", "Pineapples")
For Ctr = LBound(MyArray) To UBound(MyArray)
UserForm1.ListBox1.AddItem MyArray(Ctr)
Next
UserForm1.Show
End Sub
В меню Сервис пункт макросы, нажмите кнопку PopulateListBoxи выберите команду выполнить.
PopulateListBox процедура построения простого массива и затем добавляет элементы в массиве элемент управления ListBox с помощью метода AddItem . После этого появится пользовательской формы.
Как использовать горизонтальный диапазон ячеек на листе для заполнения элемента управления ListBox
Если значение свойства Источник строк элемента управления ListBox в горизонтальный диапазон ячеек, только первое значение отображается в элементе управления ListBox .
Чтобы заполнить элемент управления ListBox в горизонтальный диапазон ячеек с помощью метода AddItem , выполните следующие действия.
Запустите Excel и откройте новую книгу.
В A1:E1 ячеек на листе Sheet1 введите значения, которые требуется использовать для заполнения элемента управления ListBox .
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления ListBox для пользовательской формы.
В меню Вставка выберите пункт модуль для вставки в лист модуля.
В окне кода введите следующий код:
Sub PopulateListWithHorizontalRange()
For Each x In Sheet1.Range("A1:E1")
UserForm1.ListBox1.AddItem x.Value
Next
UserForm1.Show
End Sub
В меню Сервис пункт макросы, нажмите кнопку PopulateListWithHorizontalRangeи выберите команду выполнить.
Процедура макрос просматривает ячейки a1: E5 на листе Sheet1, добавления значений в ListBox1 одно одновременно.
ПримечаниеНа листе Лист1 ListBox1 не привязан к ячейки a1: E5.
Способ возврата нескольких значений из элемента управления ListBox, к которому привязан к нескольким столбцам данных
Для форматирования элементов управления ListBox для отображения более одного столбца данных. Это означает, что элемент управления ListBox отображается несколько элементов в каждой строке списка. Для возврата нескольких значений из элемента, выбранного в списке, выполните следующие действия.
Запустите Excel и откройте новую книгу.
В ячейках, которые указаны на листе Лист1 введите следующие данные:
Свернуть эту таблицуРазвернуть эту таблицу
A1: год |
B1: область |
C1: продажи |
A2: 1996 |
B2: Северная |
C2: 140 |
A3: 1996 |
B3: Южная |
C3: 210 |
A4: 1997 |
B4: Северная |
C4: 190 |
A5: 1997 |
B5: Южная |
C5: 195 |
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления Label для пользовательской формы.
Добавьте элемент управления ListBox для пользовательской формы.
Щелкните списокправой кнопкой мыши и выберите команду Свойства.
Введите или выберите значения, которые определены для следующих свойств элемента управления ListBox , перечисленные в следующей таблице:
Property Value
----------------------------
BoundColumn 1
ColumnCount 3
ColumnHeads True
RowSource Sheet1!A2:A5
Дважды щелкните элемент управления ListBox для отображения окна кода для элемента управления ListBox .
В окне кода введите следующий код:
Private Sub ListBox1_Change()
Dim SourceData As Range
Dim Val1 As String, Val2 As String, Val3 As String
Set SourceRange = Range(ListBox1.RowSource)
Val1 = ListBox1.Value
Val2 = SourceRange.Offset(ListBox1.ListIndex, 1).Resize(1, 1).Value
Val3 = SourceRange.Offset(ListBox1.ListIndex, 2).Resize(1, 1).Value
Label1.Caption = Val1 & " " & Val2 & " " & Val3
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
Если щелкнуть запись в элементе управления ListBox , метки изменяется для отображения всех трех элементов в этой записи.
Удаление всех элементов из элемента управления ListBox, который связан с листом
Чтобы удалить все элементы из элемента управления ListBox , который связан с листом, снимите флажок значение, хранящееся в свойстве Источник строк . Для удаления элементов из элемента управления ListBox , который связан с листом, выполните следующие действия.
Запустите Excel и откройте новую книгу.
В ячейках ячейки a1 Dan: a5 на листе Sheet1 введите значения, которые требуется использовать для заполнения элемента управления ListBox .
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления ListBox для пользовательской формы.
Щелкните правой кнопкой мыши элемент управления ListBox и нажмите кнопку Свойства.
В свойстве Источник строк введите Лист1!Ячейки a1: a5.
Добавьте элемент управления CommandButton пользовательской формы.
Дважды щелкните элемент управления CommandButton , чтобы открыть окно кода для элемента управления CommandButton .
В окне кода введите следующий код для события CommandButton1 Click :
Private Sub CommandButton1_Click()
ListBox1.RowSource = ""
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
Элемент управления ListBox, добавленного в пользовательской форме заполняется значениями, введенными на листе Sheet1.
Нажмите кнопку CommandButton1.
Все элементы удаляются из ListBox1.
Удаление всех элементов из элемента управления ListBox, который не связан с листом
Нет одной команды VBA, удаляет все элементы из элемента управления ListBox , если список не связана с листа. Чтобы удалить все элементы из элемента управления ListBox , который заполняется из массива Visual Basic, выполните следующие действия.
Запустите Excel и откройте новую книгу.
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления ListBox для пользовательской формы.
В меню Вставка выберите пункт модуль для вставки в лист модуля.
В окне кода введите следующий код:
Sub PopulateListBox()
Dim MyArray As Variant
Dim Ctr As Integer
MyArray = Array("Apples", "Oranges", "Peaches", "Bananas", "Pineapples")
For Ctr = LBound(MyArray) To UBound(MyArray)
UserForm1.ListBox1.AddItem MyArray(Ctr)
Next
UserForm1.Show
End Sub
Добавьте элемент управления CommandButton пользовательской формы.
Дважды щелкните элемент управления CommandButton , чтобы открыть окно кода для элемента управления CommandButton .
В окне кода введите следующий код для события CommandButton1 Click :
Private Sub CommandButton1_Click()
For i = 1 To ListBox1.ListCount
ListBox1.RemoveItem 0
Next I
End Sub
В меню Сервис пункт макросы, нажмите кнопку PopulateListBoxи выберите команду выполнить.
Заполнение элемента управления ListBox , а затем появится пользовательской формы.
Нажмите кнопку CommandButton1.
Все элементы удаляются из ListBox1.
Дополнительные сведения об элементе управления ListBox щелкните следующие номера статей базы знаний Майкрософт:
161598
(http://support.microsoft.com/kb/161598/)
OFF: Как добавить данные в элемент управления ComboBox или ListBox в Excel или Word
211446
(http://support.microsoft.com/kb/211446/)
XL2000: TextColumn свойство отображает только первый столбец
211896
(http://support.microsoft.com/kb/211896/)
XL2000: Как имитировать пользовательские формы, а сочетание управления списком
211899
(http://support.microsoft.com/kb/211899/)
XL2000: Проблемы с установкой заголовки столбцов в элементе управления ListBox
213721
(http://support.microsoft.com/kb/213721/)
XL2000: Как удалить все элементы из списка или поля со списком
213722
(http://support.microsoft.com/kb/213722/)
XL2000: Как с помощью свойства TextColumn
213723
(http://support.microsoft.com/kb/213723/)
XL2000: Как возвращаемые значения из списка, отображающего несколько столбцов
213746
(http://support.microsoft.com/kb/213746/)
XL2000: Как заполнить элемент управления списком нескольких диапазонов
213748
(http://support.microsoft.com/kb/213748/)
XL2000: Как для заполнения одного списка на основании другого списка
213752
(http://support.microsoft.com/kb/213752/)
XL2000: Использование метода AddItem вызывает ошибку, когда RowSource привязан к данным
213756
(http://support.microsoft.com/kb/213756/)
XL2000: Используя метод RemoveItem с элементом управления ListBox или ComboBox
213759
(http://support.microsoft.com/kb/213759/)
XL2000: Как определить, какие элементы выбраны в поле со списком
Элементы управления ComboBox
Элемент управления ComboBox можно использовать раскрывающийся список или поле со списком, где можно выбрать значение в списке или введите новое значение. Свойство Style определяет, если элемент управления ComboBox действует как раскрывающийся список или поле со списком.
Примечание В примерах выше для элемента управления ListBox могут также применяться к элементу управления ComboBox , за исключением в примере «Как получить выделить элемент управления ListBox несколько выделенных элементов».
Как добавить новый элемент списка, если элемент управления ComboBox не связана с листом
Если ввести значение, которое еще не списка в элементе управления ComboBox , может потребоваться добавить новое значение к списку. Чтобы добавить новое значение, введенное в элемент управления ComboBox , если на листе не привязан элемент управления ComboBox , выполните следующие действия.
Запустите Excel и откройте новую книгу.
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления поля со списком UserForm.
В меню Вставка выберите пункт модуль для вставки в лист модуля.
В окне кода введите следующий код:
Sub PopulateComboBox()
Dim MyArray As Variant
Dim Ctr As Integer
MyArray = Array("Apples", "Oranges", "Peaches", "Bananas", "Pineapples")
For Ctr = LBound(MyArray) To Ubound(MyArray)
UserForm1.ComboBox1.AddItem MyArray(Ctr)
Next
UserForm1.Show
End Sub
Добавьте элемент управления CommandButton пользовательской формы.
Дважды щелкните элемент управления CommandButton , чтобы открыть окно кода для элемента управления CommandButton .
В окне кода введите следующий код для события CommandButton1 Click :
Private Sub CommandButton1_Click()
Dim listvar As Variant
listvar = ComboBox1.List
On Error Resume Next
' If the item is not found in the list...
If IsError(WorksheetFunction.Match(ComboBox1.Value, listvar, 0)) Then
' add the new value to the list.
ComboBox1.AddItem ComboBox1.Value
End If
End Sub
В меню Сервис пункт макросы, нажмите кнопку PopulateListBoxи выберите команду выполнить.
Заполнение элемента управления ComboBox , а затем появится пользовательской формы.
В элементе управления ComboBox введите Mangoes (или любое значение, которое еще нет в списке).
Нажмите кнопку CommandButton1.
Теперь новое значение отобразится в конце списка.
Как добавить новый элемент списка, если элемент управления ComboBox связан с листом
Когда пользователь вводит значение, которое еще не списка в элементе управления ComboBox , может потребоваться добавить новое значение к списку. Чтобы добавить новое значение, введенное в элемент управления ComboBox в список, выполните следующие действия.
Запустите Excel и откройте новую книгу.
В ячейках ячейки a1 Dan: a5 на листе Sheet1 введите значения, которые требуется использовать для заполнения элемента управления ComboBox .
Выделите ячейки a1: a5 ячеек на листе Sheet1.
В меню Вставка выберите пункт Имя и нажмите кнопку Определить.
В поле имя введите ListRange и нажмите кнопку ОК. Это создает определенное имя ListRange. Определенное имя ListRange можно использовать для привязки элемента управления ComboBox свойства Источник строк листа.
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления поля со списком UserForm.
В окне Свойства для ComboBox1тип Лист1!ListRange как свойства Источник строк .
Добавьте элемент управления CommandButton пользовательской формы.
Дважды щелкните элемент управления CommandButton , чтобы открыть окно кода для элемента управления CommandButton .
В окне кода введите следующий код для события CommandButton1 Click :
Private Sub CommandButton1_Click()
Dim SourceData As Range
Dim found As Object
Set SourceData = Range("ListRange")
Set found = Nothing
' Try to find the value on the worksheet.
Set found = SourceData.Find(ComboBox1.Value)
' If the item is not found in the list...
If found Is Nothing Then
' redefine ListRange.
SourceData.Resize(SourceData.Rows.Count + 1, 1).Name = "ListRange"
' Add the new item to the end of the list on the worksheet.
SourceData.Offset(SourceData.Rows.Count, 0).Resize(1, 1).Value _
= ComboBox1.Value
' Reset the list displayed in the ComboBox.
ComboBox1.RowSource = Range("listrange").Address(external:=True)
End If
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
Пользовательская форма появится на листе Sheet1.
В элементе управления ComboBox введите значение, которое уже не находится в списке.
Нажмите кнопку CommandButton1.
В список добавляется новый элемент, введенный в элемент управления ComboBox , а список, к которому привязан элемент управления ComboBox расширяется для включения ячейки a1: a6.
Отображение списка элемента управления ComboBox при отображении пользовательской формы
В некоторых случаях может быть полезно при первом появлении UserForm представить список элемента управления ComboBox . В следующем примере используется событие активации пользовательской формы. Чтобы отобразить список элемента управления ComboBox , выполните следующие действия.
Запустите Excel и откройте новую книгу.
В ячейках ячейки a1 Dan: a5 на листе Sheet1 введите значения, которые требуется использовать для заполнения элемента управления ComboBox .
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления поля со списком UserForm.
В окне Свойства для ComboBox1тип Лист1!Ячейки a1: a5 как свойства Источник строк .
Дважды щелкните пользовательскую форму для отображения окна кода для пользовательской формы.
В окне кода введите следующий код для события CommandButton Click :
Private Sub UserForm_Activate()
ComboBox1.DropDown
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
Пользовательская форма открывается на листе Sheet1 и просмотра списка ComboBox1.
Отображение списка одного элемента управления ComboBox при выборе в другом элементе управления ComboBox
Для автоматического отображения списка одного элемента управления ComboBox , когда выбор сделан в другой элемент управления ComboBox , выполните следующие действия.
Запустите Excel и откройте новую книгу.
В ячейках a1: a10 на листе Sheet1 введите значения, которые требуется использовать для заполнения элемента управления ComboBox .
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите пункт Модуль.
В окне кода модуля введите следующий код:
Sub DropDown_ComboBox()
UserForm1.ComboBox2.DropDown
End Sub
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления поля со списком UserForm.
В окне Свойства для ComboBox1тип Лист1!Ячейки a1: a5 как свойства Источник строк .
Дважды щелкните элемент управления ComboBox , чтобы открыть окно кода для элемента управления ComboBox .
В окне кода для элемента управления ComboBox введите следующий код для события ComboBox Click :
Private Sub ComboBox1_Click()
Application.OnTime Now, "DropDown_ComboBox"
End Sub
Добавьте второй элемент управления поля со списком UserForm.
В окне Свойства для ComboBox2типа Лист1!A6:a10 как свойства Источник строк .
В меню выполнить выберите команду Run Sub/UserForm.
При выборе элемента в списке ComboBox1 автоматически появляется в списке ComboBox2 .
Дополнительные сведения об элементе управления ComboBox щелкните следующие номера статей базы знаний Майкрософт:
161598
(http://support.microsoft.com/kb/161598/)
OFF: Как добавить данные в элемент управления ComboBox или ListBox в Excel или Word
211446
(http://support.microsoft.com/kb/211446/)
XL2000: TextColumn свойство отображает только первый столбец
211899
(http://support.microsoft.com/kb/211899/)
XL2000: Проблемы с установкой заголовки столбцов в элементе управления ListBox
213717
(http://support.microsoft.com/kb/213717/)
XL2000: Ошибка во время выполнения, используя метод раскрывающегося списка в поле со списком
213718
(http://support.microsoft.com/kb/213718/)
XL2000: Как для отображения списка ComboBox при пользовательской формы будет отображаться
213721
(http://support.microsoft.com/kb/213721/)
XL2000: Как удалить все элементы из списка или поля со списком
213722
(http://support.microsoft.com/kb/213722/)
XL2000: Как с помощью свойства TextColumn
213752
(http://support.microsoft.com/kb/213752/)
XL2000: С помощью метода AddItem приводит к ошибке при привязке данных источник строк
213756
(http://support.microsoft.com/kb/213756/)
XL2000: Используя метод RemoveItem с элементом управления ListBox или ComboBox
Управления Frame
Используйте элемент управления Frame для группировки логически связанных элементов в пользовательской форме. Элементы управления Frame часто используются для группировки элементов управления OptionButton .
Как организовать цикл через все элементы управления в элементе управления Frame
Для использования ...Далее цикл для доступа к элементам управления в элементе управления Frame , выполните следующие действия:
Запустите Excel и откройте новую книгу.
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления Frame пользовательской формы.
Добавьте элемент управления CheckBox для элемента управления Frame .
Повторите этот шаг, чтобы добавить два элемента управления OptionButton дополнительные рамки элемента управления.
Дважды щелкните элемент управления Frame , чтобы открыть окно кода для элемента управления Frame .
В окне кода введите следующий код для события Click кадра :
Private Sub Frame1_Click()
Dim Ctrl As Control
For Each Ctrl In Frame1.Controls
Ctrl.Enabled = Not Ctrl.Enabled
Next
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
В пользовательской форме щелкните элемент управления Frame .
Первый раз, нажмите кнопку управления Frame , все элементы управления в элемент управления Frame , недоступны. Если щелкнуть элемент управления Frame , элементы управления снова становятся доступными.
Элемент управления OptionButton
Группы элементов управления OptionButton позволяет выбрать между группами параметров. Можно использовать любой из следующих методов для элемента управления OptionButton группы:
Управления Frame
Свойство GroupName
Примечание В На значение, Да значение и Значение true указать, что значение OptionButton выбран. В Выключение значение, Нет значение и Значение false указать, что значение OptionButton не выбран.
Как определить элемент управления OptionButton, выбранного при OptionButton элементы управления находятся на элементе управления Frame
При группировке элементов управления переключателей с помощью управления Frame можно определить элемент управления OptionButton , выбранной в цикле по всем элементам управления в элемент управления Frame и проверив свойство Value каждого элемента управления. Чтобы определить элемент управления OptionButton , который выбран, выполните следующие действия.
Запустите Excel и откройте новую книгу.
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления Frame пользовательской формы.
Добавьте элемент управления CheckBox для элемента управления Frame .
Повторите этот шаг, чтобы добавить два элемента управления OptionButton дополнительные рамки элемента управления.
Добавьте элемент управления CommandButton на пользовательской форме вне элемента управления Frame .
Дважды щелкните элемент управления CommandButton , чтобы открыть окно кода для пользовательской формы.
В окне кода введите следующий код для события CommandButton1 Click :
Private Sub CommandButton1_Click()
For Each x In Frame1.Controls
If x.Value = True Then
MsgBox x.Caption
End If
Next
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
В пользовательской формещелкните элемент управления OptionButton и нажмите кнопку CommandButton1.
Появляется окно сообщения, содержащее заголовок текущего выбранного элемента управления OptionButton .
Как определить элемент управления OptionButton, выбранного
Следующий пример предназначен для определения элемента управления OptionButton , выбранного в Group1. Создание пользовательской формы, который имеет две группы элемента управления OptionButton , выполните следующие действия.
Запустите Excel и откройте новую книгу.
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления Frame пользовательской формы.
Добавьте элемент управления CheckBox в элемент управления Frame .
Повторите этот шаг, чтобы добавить два элемента управления OptionButton дополнительные рамки элемента управления.
Для каждого элемента управления OptionButton введите в качестве значения свойства GroupName Group1 .
Повторите шаги 4 и 5, чтобы создать второй элемент управления фрейма , содержащего три элемента управления OptionButton .
Для каждого элемента управления OptionButton второго фрейма элемента управления введите Group2 свойства GroupName .
Добавьте элемент управления CommandButton на пользовательскую форму вне рамки элементов управления.
Дважды щелкните элемент управления CommandButton , чтобы открыть окно кода для пользовательской формы.
В окне кода введите следующий код для события CommandButton1 Click :
Private Sub CommandButton1_Click()
Dim x As Control
' Loop through ALL the controls on the UserForm.
For Each x In Me.Controls
' Check to see if "Option" is in the Name of each control.
If InStr(x.Name, "Option") Then
' Check Group name.
If x.GroupName = "Group1" Then
' Check the status of the OptionButton.
If x.Value = True Then
MsgBox x.Caption
Exit For
End If
End If
End If
Next
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
В пользовательской форме щелкните один элемент управления OptionButton в Group1 и нажмите кнопку CommandButton1.
Появится окно сообщения, которое содержит заголовок элемента управления OptionButton , который выбран в данный момент.
Дополнительные сведения об элементах управления OptionButton щелкните следующий номер статьи базы знаний Майкрософт:
213724
(http://support.microsoft.com/kb/213724/)
XL2000: Проблемы с помощью свойства TripleState для переключателя
Элемент управления CheckBox
Элемент управления CheckBox можно использовать для обозначения значения true или false. Значение Trueуказывает на элемент управления CheckBox , отображаемый с галочкой внутри. Без флажка отображается флажок указывает на значение False. Если значение свойства TripleState равно True, элемент управления CheckBox также может иметь значение Null. Недоступность появится элемент управления CheckBox , который имеет значение Null .
Примечание Значение на значение Да и значение True указывает, что выбран элемент управления CheckBox . Значение Off , без значения и значение False указывает, что элемент управления CheckBox снят.
Как проверить значение элемента управления CheckBox
Чтобы использовать свойство Value возвращает текущее значение элемента управления CheckBox , выполните следующие действия.
Запустите Excel и откройте новую книгу.
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления CheckBox для пользовательской формы.
В списке свойства для CheckBox1как свойство TripleState выберите значение True .
Дважды щелкните элемент управления CheckBox , чтобы открыть окно кода для элемента управления CheckBox .
В окне кода введите следующий код для события CheckBox1 Change :
Private Sub CheckBox1_Change()
Select Case CheckBox1.Value
Case True
CheckBox1.Caption = "True"
Case False
CheckBox1.Caption = "False"
Case Else
CheckBox1.Caption = "Null"
End Select
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
Если щелкнуть элемент управления CheckBox , заголовок элемента управления CheckBox изменяется в соответствии с текущим значением.
Элемент управления ToggleButton
Элемент управления ToggleButton имеет тот же внешний вид, как элемент управления CommandButton только после нажатия кнопки. Если щелкнуть элемент управления ToggleButton кажется нажата или сдвигаются вниз. Свойство Value элемента управления ToggleButton является значение True, Если кнопка нажата и значение False, Если кнопка не выбрана. Если значение свойства TripleState равно True, элемент управления ToggleButton также может иметь значение Null. Недоступность появляется элемент управления ToggleButton , имеет значение Null .
Примечание Значение на значение Да и значение True указывает, что выбран элемент управления ToggleButton . Значение Off , без значения и значение False указывают, что элемент управления ToggleButton не установлен.
Как получить значение элемента управления ToggleButton
Чтобы получить значение элемента управления ToggleButton , выполните следующие действия.
Запустите Excel и откройте новую книгу.
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления ToggleButton на пользовательской форме.
Добавьте элемент управления Label для пользовательской формы.
Дважды щелкните элемент управления ToggleButton , чтобы открыть окно кода для элемента управления ToggleButton .
В окне кода введите следующий код для события ToggleButton1Click :
Private Sub ToggleButton1_Click()
If ToggleButton1.Value = True Then
' Set UserForm background to Red.
Me.BackColor = RGB(255, 0, 0)
Else
' Set UserForm background to Blue.
Me.BackColor = RGB(0, 0, 255)
End If
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
Если щелкнуть элемент управления ToggleButton , цвет фона пользовательской формы изменения.
Как создать группу взаимоисключающих элементов управления ToggleButton
В этом примере используется событие MouseUp для установки переменной и вызывает процедуру ExclusiveToggleButtons . Процедура ExclusiveToggleButtons определяет элемент управления ToggleButton , установлен и отменяет другие. Чтобы создать группу взаимоисключающих элементов управления ToggleButton , выполните следующие действия.
Запустите Excel и откройте новую книгу.
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите пункт Модуль.
В окне кода модуля введите следующий код:
' Variable that holds the name of the ToggleButton that was clicked.
Public clicked As String
Sub ExclusiveToggleButtons()
Dim toggle As Control
' Loop through all the ToggleButtons on Frame1.
For Each toggle In UserForm1.Frame1.Controls
' If Name of ToggleButton matches name of ToggleButton
' that was clicked...
If toggle.Name = clicked Then
'...select the button.
toggle.Value = True
Else
'...otherwise clear the selection of the button.
toggle.Value = False
End If
Next
End Sub
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления Frame пользовательской формы.
Добавьте элемент управления ToggleButton рамки элемента управления.
Повторите этот шаг для добавления двух элементов управления ToggleButton дополнительные рамки элемента управления.
Дважды щелкните элемент управления Frame , чтобы открыть окно кода для пользовательской формы.
В окне кода модуля введите следующий код для события ToggleButton MouseUp :
Private Sub ToggleButton1_MouseUp(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
clicked = ToggleButton1.Name
Application.OnTime Now, "ExclusiveToggleButtons"
End Sub
Private Sub ToggleButton2_MouseUp(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
clicked = ToggleButton2.Name
Application.OnTime Now, "ExclusiveToggleButtons"
End Sub
Private Sub ToggleButton3_MouseUp(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
clicked = ToggleButton3.Name
Application.OnTime Now, "ExclusiveToggleButtons"
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
Если щелкнуть элемент управления ToggleButton отменяется ранее выбранный элемент управления ToggleButton .
Элемент управления TabStrip
Используйте элемент управления TabStrip для просмотра различных наборов данных для набора элементов управления.
Способ управления элемент управления TabStrip программными средствами
Чтобы изменить свойство BackColor элемента управления Image на основе выбранной вкладки, выполните следующие действия.
Запустите Excel и откройте новую книгу.
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления TabStrip пользовательской формы.
Добавьте элемент управления Image , описывающим базовый элемент управления TabStrip , но не содержит описания вкладок.
В области «свойства» Image1 введите & H000000FF & в качестве значения свойства BackColor .
Дважды щелкните элемент управления TabStrip , чтобы открыть окно кода для управления TabStrip .
В окне кода введите следующий код для события TabStrip1 Change :
Private Sub TabStrip1_Change()
Dim i As Integer
i = TabStrip1.SelectedItem.Index
Select Case i
Case 0
' If Tab1 is selected, change the color of Image control to Red.
Image1.BackColor = RGB(255, 0, 0)
Case 1
' If Tab2 is selected, change the color of Image control to Green.
Image1.BackColor = RGB(0, 255, 0)
End Select
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
Цвет элемента управления меняется в зависимости от страницы в элементе управления TabStrip , активного изображения .
Дополнительные сведения об элементе управления TabStrip щелкните следующий номер статьи базы знаний Майкрософт:
213254
(http://support.microsoft.com/kb/213254/)
XL2000: Как использовать элемент управления TabStrip на пользовательской форме
Многостраничные управления
Использование элемента управления многостраничные для работы с большим количеством данных, могут быть отсортированы в несколько категорий. Многостраничные управления состоит из одной или нескольких страниц объекты, каждый содержать другой набор элементов управления. Активной страницы можно задать программно, задав свойство Value элемента управления многостраничные .
Как управлять многостраничных элементов управления программными средствами
Чтобы добавить элемент управления блок страниц и управлять им с помощью макроса, выполните следующие действия:
Запустите Excel и откройте новую книгу.
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления многостраничные пользовательской формы.
Добавьте элемент управления Label на многостраничные управления Page1.
Добавьте элемент управления TextBox на многостраничные управления Page1.
Многостраничные элемента управления щелкните Страница 2и затем повторите шаги 5 и 6, чтобы добавить элемент управления Label и элемент управления TextBox .
Дважды щелкните элемент управления многостраничные , чтобы открыть окно кода для управления многостраничные .
В окне кода введите следующий код для события MultiPage1 Change :
Private Sub MultiPage1_Change()
Select Case MultiPage1.Value
' If activating Page1...
Case 0
Label1.Caption = TextBox2.Text
TextBox1.Text = ""
' If activating Page2...
Case 1
Label2.Caption = TextBox1.Text
TextBox2.Text = ""
End Select
End Sub
В окне кода введите следующий код в событие Инициализации пользовательской формы :
Private Sub UserForm_Initialize()
' Force Page1 to be active when UserForm is displayed.
MultiPage1.Value = 0
Label1.Caption = ""
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
В элементе управления TextBox на Page1 введите Test. Когда откройте вкладку Страница 2 , снят TextBox2 и изменяет заголовок Label2 на записи, сделанные в TextBox1 на Page1 («тест»).
Как создать интерфейс мастера с помощью многостраничных элементов управления
Если задача требует несколько поэтапно, интерфейс мастера может быть очень эффективным. Многостраничные управления можно использовать для создания интерфейса мастера вместо использования нескольких UserForms. В этом примере управляет блок страниц управления, который имеет три страницы. Процедура, вложенные в событие инициализации UserForm отключает страница 2 и Page3 и заставляет Page1 многостраничные элемента управления в качестве активных.
Примечание Когда страницы управления многостраничные индексировать с помощью коллекции страниц , первой страницы в коллекции является страницей ноль. Эта процедура также задает заголовок элемента управления CommandButton и отключает < Назад кнопки.
Примечание Определяет процедуру, которая назначается событию Click CommandButton1 функциональность < Назад кнопки. Функциональные возможности элементов управления процедуру, которая назначается событие Click элемента управления CommandButton2 Далее > кнопки. Чтобы создать с помощью элемента управления многостраничные интерфейс мастера, выполните следующие действия.
Запустите Excel и откройте новую книгу.
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления многостраничные пользовательской формы.
Щелкните правой кнопкой мыши вкладку « Page1 » и нажмите кнопку Новая страница для добавления к элементу управления многостраничные Page3.
Добавьте элемент управления CommandButton UserForm, на многостраничные управления.
Повторите этот шаг для добавления второй элемент управления CommandButton на пользовательской форме.
Дважды щелкните пользовательскую форму , чтобы открыть окно кода для пользовательской формы.
В окне кода введите следующий код в событие Инициализации пользовательской формы :
Private Sub UserForm_Initialize()
With MultiPage1
' The next 2 lines disable Page2 & Page3.
.Pages(1).Enabled = False
.Pages(2).Enabled = False
' Make Page1 the active page.
.Value = 0
End With
' Set the caption on the CommandButtons.
CommandButton1.Caption = "<Back"
CommandButton1.Enabled = False
CommandButton2.Caption = "Next>"
End Sub
' Procedure for the "<Back" button
Private Sub CommandButton1_Click()
Select Case MultiPage1.Value
Case 1 ' If Page2 is active...
With MultiPage1
.Pages(0).Enabled = True ' Enable Page1.
.Value = MultiPage1.Value - 1 ' Move back 1 page.
.Pages(1).Enabled = False ' Disable Page2.
End With
CommandButton1.Enabled = False ' Disable Back button.
Case 2 ' If Page3 is active...
With MultiPage1
.Pages(1).Enabled = True ' Enable Page2.
.Value = MultiPage1.Value - 1 ' Move back 1 page.
.Pages(2).Enabled = False ' Disable Page3.
CommandButton2.Caption = "Next>"
End With
End Select
End Sub
' Procedure for the "Next>" button
Private Sub CommandButton2_Click()
Select Case MultiPage1.Value
Case 0 ' If Page1 is active...
With MultiPage1
.Value = MultiPage1.Value + 1 ' Move forward 1 page.
.Pages(1).Enabled = True ' Enable Page2.
.Pages(0).Enabled = False ' Disable Page1.
End With
CommandButton1.Enabled = True ' Enable Back button.
Case 1 ' If Page2 is active...
With MultiPage1
.Value = MultiPage1.Value + 1 ' Move forward 1 page.
.Pages(2).Enabled = True ' Enable Page3.
.Pages(1).Enabled = False ' Disable Page2.
End With
CommandButton2.Caption = "Finish" ' Change Next button to Finish.
Case 2 ' If Page3 is active...
MsgBox "Finished!" ' User is Finished.
Unload Me ' Unload the UserForm.
End Select
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
При нажатии кнопки Далее >, активируется страница 2 и < Назад становится доступной кнопка. При нажатии кнопки Далее > второй раз, активируется Page3 и изменяет заголовок для CommandButton2 на "Готово".
Элемент управления ScrollBar
Если требуется изменить значение, отображаемое по другому элементу управления, например элемент управления Label можно использовать элемент управления ScrollBar .
Как изменить элемент управления Label, основанный на значении элемента управления ScrollBar
Чтобы изменить свойство заголовка для элемента управления Label текущее значение свойства Value элемента управления ScrollBar , выполните следующие действия.
Запустите Excel и откройте новую книгу.
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления ScrollBar для пользовательской формы.
Добавьте элемент управления Label для пользовательской формы.
Дважды щелкните элемент управления ScrollBar , чтобы открыть окно кода для элемента управления ScrollBar .
В окне кода введите следующий код для события ScrollBar1 Change :
Private Sub ScrollBar1_Change()
Label1.Caption = ScrollBar1.Value
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
При прокрутке с помощью элемента управления ScrollBar Label1 обновляется текущее значение элемента управления ScrollBar .
Элемент управления SpinButton
SpinButton элемент управления, как элемент управления ScrollBar часто используется для увеличения или уменьшения значения другого элемента управления, например элемент управления Label . Свойства SmallChange определяет, сколько значение SpinButton элемента управления изменяется при нажатии.
Как добавить элемент управления SpinButton, который увеличивает или уменьшает дату, которая хранится в элементе управления TextBox
Чтобы добавить элемент управления SpinButton , который увеличивает или уменьшает дату, которая хранится в элементе управления TextBox , выполните следующие действия.
Запустите Excel и откройте новую книгу.
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления SpinButton для пользовательской формы.
Добавьте элемент управления TextBox для пользовательской формы.
Дважды щелкните элемент управления SpinButton , чтобы открыть окно кода для элемента управления SpinButton .
В окне кода введите следующий код для события SpinButton1 SpinUp :
Private Sub SpinButton1_SpinUp()
TextBox1.Text = DateValue(TextBox1.Text) + 1
End Sub
В окне кода введите следующий код для события SpinButton1 SpinDown :
Private Sub SpinButton1_SpinDown()
TextBox1.Text = DateValue(TextBox1.Text) - 1
End Sub
В окне кода введите следующий код в событие Инициализации пользовательской формы :
Private Sub UserForm_Initialize()
TextBox1.Text = Date
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
При появлении UserForm в TextBox1отображается текущая дата. При выборе элемента управления SpinButton , дата увеличивается или уменьшается на один день.
В этом примере при изменении свойства SmallChange SpinButton1вы не влияют на количество дней хранения записи в TextBox1 изменяется, при нажатии кнопки SpinButton1. Количество дней определяется только процедуры, присоединенный к SpinUp события и событие SpinDown SpinButton1.
Дополнительные сведения об элементе управления SpinButton щелкните следующий номер статьи базы знаний Майкрософт:
213224
(http://support.microsoft.com/kb/213224/)
XL2000: пример Visual Basic с помощью кнопки Spin с датой
Элемент управления RefEdit
Элемент управления RefEdit имитирует поведение поля ссылки, встроенные в Excel. Чтобы получить текущий адрес ячейки, которые хранятся в элементе управления RefEdit можно использовать свойство Value .
Как заполнить диапазон ячеек диапазона, выберите с помощью элемента управления RefEdit
Чтобы использовать элемент управления RefEdit для заполнения ячейки, выполните следующие действия:
Запустите Excel и откройте новую книгу.
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления RefEdit для пользовательской формы.
Добавьте элемент управления CommandButton пользовательской формы.
Дважды щелкните элемент управления CommandButton , чтобы открыть окно кода для элемента управления CommandButton .
В окне кода введите следующий код для события CommandButton1 Click :
Private Sub CommandButton1_Click()
Dim MyRange As String
MyRange = RefEdit1.Value
Range(MyRange).Value = "test"
Unload Me
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
UserFormappears.
Нажмите кнопку в элементе управления RefEdit .
Обратите внимание, что свертывание пользовательской формы.
Выделите диапазон ячеек, например ячейки a1: a5 и нажмите кнопку в элементе управления RefEdit , чтобы развернуть для пользовательской формы.
Нажмите кнопку CommandButton1.
Пользовательская форма закрывается, и теперь выделенные ячейки содержат слово «тест».
Дополнительные сведения об элементе управления RefEdit щелкните следующий номер статьи базы знаний Майкрософт:
213776
(http://support.microsoft.com/kb/213776/)
XL2000: Как использовать элемент управления RefEdit с пользовательской формы
Элемент управления Image
Элемент управления Image предназначен для отображения рисунков в пользовательской форме. Чтобы назначить изображение во время выполнения элемент управления Image , функция LoadPicture .
Загрузка рисунка в элемент управления Image
Чтобы вставить элемент управления Image , предлагается выбрать рисунок для загрузки при выборе элемента управления Image , выполните следующие действия.
Запустите Excel и откройте новую книгу.
В меню Сервис выберите пункт Макрос и нажмите кнопку Редактор Visual Basic.
В меню Вставка выберите команду UserForm UserForm вставить в книгу.
Добавьте элемент управления Image на пользовательской форме.
Дважды щелкните изображение, чтобы открыть окно кода для элемента управления Image .
В окне кода введите следующий код для события Image1 Click :
Private Sub Image1_Click()
Dim fname As String
' Display the Open dialog box.
fname = Application.GetOpenFilename(filefilter:= _
"Bitmap Files(*.bmp),*.bmp", Title:="Select Image To Open")
' If you did not click Cancel...
If fname <> "False" Then
' Load the bitmap into the Image control.
Image1.Picture = LoadPicture(fname)
' Refresh the UserForm.
Me.Repaint
End If
End Sub
В меню выполнить выберите команду Run Sub/UserForm.
Пользовательская форма отображается.
Щелкните элемент управления Image .
При выборе элемента управления Image , появится диалоговое окно Выбор изображения для открытия и выберите файл растрового изображения для вставки в элементе управления.