VBA-Урок 12.3. Элементы управления (Controls)
Элементы управления также могут использоваться вне форм. В следующем примере мы используем элементы управления прямо на рабочем листе.
Заметьте, что «Режим дизайнера» («Design mode») должен быть активирован, для того чтобы изменять элемент управления, который расположен на рабочем листе (и так же должен быть деактивирован, для того чтобы использовать этот элемент управления).

Перед рассмотрением этого примера, давайте посмотрим на это:

Сейчас, мы хотим добавить цвет фона ячеек и выбрать её основываясь на позиции ползунка в определенной площади 30 строк на 10 колонок.
Свойства вертикального ползунка для прокрутки экрана.
- Min 1
- Max 30 (30 строк)
- Value : позиция ползунка (в данном случае, между 1 и 30)
Горизонтальный ползунок такой же, за исключением Max : 10.
Далее идет код, который будет запускаться каждый раз, когда идет изменение значения ( Value ) вертикального ползунка:
Этот код запускается когда события Change и Scroll возникают и запустят инструкции в не зависимости от того, по какой части ползунка мы щелкнули.
Далее код для вертикального ползунка:
А тут код для горизонтального ползунка:
Вы можете скачать Excel файл с примером: scrollbar.xls
Выпадающий список и Окно со списком (ComboBox and ListBox)
Это начальная точка нашего следующего примера:
Вы можете скачать Excel файл с примером: userform4.xls
Когда форма запускается, мы хотим, чтобы 4 страны были загружены в выпадающий список (используя AddItem метод):
Когда значение выпадающего списка меняется, мы хотим добавить города выбранной страны, используя цикл, подобен предыдущему.
Для того, чтобы сделать это, нам нужно номер колонки и номер строки.
Свойство ListIndex содержит порядковый номер выбранного элемента в выпадающем списке (в отличие от Value, которое содержит значение элемента списка). Заметьте, что ListIndex начинается с номера 0.
Номер колонки получается из:
Чтобы получить количество строк в выбранной колонке определенной страны, мы можем найти номер последней непустой ячейки:
Используя эту информацию, теперь возможно создать цикл, чтобы добавить города в список:
Примечание: Мы могли бы сократить код, но это бы сделало его менее читабельным:
Практикум по visual basic содержание
Элемент управления ScrollBar – это полосы прокрутки окна. Некоторые элементы управления (например, TextBox, Listbox) используют такие полосы прокрутки, причём не требуется написание программного кода для выполнения прокрутки. Однако полоса прокрутки как элемент управления Visual Basic хотя и предназначена для выполнения аналогичных функций, но не выполняет автоматически каких – либо действий, т. е. её поведение необходимо программировать. Полоса прокрутки обычно используется для увеличения или уменьшения некоторого значения. Например, с её помощью можно изменять интенсивность цвета, число или громкость звука на мультимедиа – устройстве. Полоса прокрутки обычно применяется для изменения величины в пределах непрерывной шкалы. Существует два вида полос прокрутки: горизонтальная и вертикальная.
Инструмент Slider можно добавить на панель инструментов, отметив флажком, после выбора команды Components опции Project, строку Microsoft Windows Common Controls 5.0.
— пиктограмма этого инструмента.
Slider позволяет выбрать дискретное значение или набор значений из определенного диапазона. В принципе, этот элемент функционирует аналогично ScrollBar.
События
Свойства
Перед тем как использовать полосу прокрутки или ползунок, необходимо установить для них диапазон прокрутки, который показывает количество шагов прокрутки между крайними позициями бегунка.
Текущее положение бегунка определяется значением свойства Value.
Диапазон прокрутки определяется свойствами Min и Max полосы прокрутки или ползунка. При этом значение Min всегда соответствует верхнему концу полосы, а Max – нижнему (для вертикальной полосы прокрутки), и при прокрутке содержимого окна сверху вниз значение свойства Value увеличивается. Чтобы изменить направление изменения свойства Value, достаточно поменять местами значения свойств Min и Max.
Щелчок на одной из двух кнопок полосы прокрутки со стрелками на полосе изменяет значение свойства Value на величину, определяемую свойством SmallChang. Если пользователь щёлкнет в области между бегунком и какой – либо из кнопок, то значение свойства Value полосы прокрутки и соответственно положение бегунка изменяется на величину, определяемую свойством LargeChange.
Значение свойства Orientation инструмента Slider определяет ориентацию (горизонтальную, вертикальную) движения ползунка. Свойства TickStyle и TickFrequency определяют наличие или отсутствие отметок вдоль полосы движения ползунка, их расположение и их количество.

Задача 22. Разместим на форме элементы TextBox, кнопку («Выход») и горизонтальную полосу прокрутки. Свойству Мах полосы прокрутки присвойте значение 100, а свойству Min – 1. Создадим приложение, где изменение положения бегунка изменяет соответственно числовое значение в текстовом поле с интервалом 1.
Введём код программы:
Private Sub HScroll1_Change()
Private Sub HScroll1_Scroll()
Private Sub выход_Click()
Задача 23. Разместим на форме 3 элемента TextBox, кнопки («очистить», «+», «-») и две горизонтальных полосы прокрутки. Свойству Мах полос прокрутки присвойте значение 32767, а свойству Min – 1. Создадим приложение, где изменение положения бегунка изменяет соответственно числовое значение в текстовых полях с интервалом 1, нажатие кнопок « + », « — » соответственно складывает и вычитает эти значения и выдаёт результат в TextBox3, а кнопка «очистить» очищает TextBox3.

Private Sub Command1_Click ()
Text3.Text = Val (Text1.Text) + Val(Text2.Text)
Private Sub Command2_Click ()
Text3.Text = Val (Text1.Text) — Val (Text2.Text)
Private Sub Command3_Click ()
Private Sub HScroll1_Change ()
Text1.Text = Str (HScroll1.Value)
Private Sub HScroll1_Scroll ()
Text1.Text = Str (HScroll1.Value)
Задача 24. Демонстрация оттенков цветов
Д
анное приложение демонстрирует все оттенки цветов, полученных с помощью RGB – кодов. Свойству Мах полос прокрутки присвойте значение 255, а свойству Min – 0.
Excel-VBA Solutions
Want to become an expert in VBA? So this is the right place for you. This blog mainly focus on teaching how to apply Visual Basic for Microsoft Excel. So improve the functionality of your excel workbooks with the aid of this blog. Also ask any questions you have regarding MS Excel and applying VBA. We are happy to assist you.
Pages
- POSTS LIST
- CONTACT
- PRODUCTS
- PRIVACY POLICY
How to Use Scroll Bar in Userform
Some times we need to use very large userforms in our VBA projects. Size of the form depends on the number of fields and various objects we have in our form. And if we need to show them in one window, we need to create big userform to put them all. You can create a form of any size by giving appropriate values for Height and width in properties window. But if our userform is bigger than the screen we need to use scroll bars inside our form. It is easier to put a scroll bar to a userform. But I saw that many people have problems with setting scroll bars correctly. Lot of people say that their scroll bars not working at run time. So there are few important things you should know when using scroll bars.
I will explain these important facts using a simple example. I have created a large form which has height of 1200 and width of 420. And there are a lot of text fields inside my userform.

If you look at properties window, you will notice that ScrollBars value is set to 0-fmScrollBarsNone by default. So we need to change this property depending on our requirement. If you have a userform with larger width, then you need to set ScrollBars value to 1-fmScrollBarsHorizontal. If you have a userform which has higher height, then you need to set this value to 2-fmScrollBarsVertical. And if you need scroll bars in both directions you can set the value to 3-fmScrollBarsBoth. You need to set to this value only if both width and height of your form is bigger than the screen.

You should set ScrollTop value to the 0. So then it will always appear at top.

Finally you need to set the ScrollHeight. It is very important to set appropriate value to this. Othewise you may not able to scroll up to the bottom of the form. Also if you set higher value, then user will scroll after the end of the objects. So user will see like your form is extended more than needed. So you should set a optimum value for this property for correct functionality and nice appearance. For example if you have a form having a height of 1200, you should set ScrollHeight value around 1850.