Vba scrollbar как использовать
Перейти к содержимому

Vba scrollbar как использовать

  • автор:

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.

Номер колонки получается из:

Чтобы получить количество строк в выбранной колонке определенной страны, мы можем найти номер последней непустой ячейки:

Используя эту информацию, теперь возможно создать цикл, чтобы добавить города в список:

Примечание: Мы могли бы сократить код, но это бы сделало его менее читабельным:

Формы Элементы управления ScrollBar (полоса прокрутки) и SpinButton (счетчик)

Полосы прокрутки (ScrollBars) чаще всего встречаются в текстовых полях, когда введенный текст полностью на экране не умещается. Однако ничего не мешает вам использовать ScrollBar как отдельный элемент управления (пользователи часто называют его «ползунок») — для выбора пользователем какого-то значения из диапазона (см. рис. 5.9). Обычно такой элемент управления используется для выбора плавно меняющихся значений — например, уровня громкости, яркости, сжатия, приоритета и т.п.

Рис. 5.9 Объекты полосы прокрутки ( ScrollBar) и счетчика ( SpinButton)

Главное событие для этого элемента управления — уже знакомое нам Change. Главные свойства выглядят так:

  • Max и Min — максимальное и минимальные значения, которые можно задать при помощи этого элемента управления. Возможный диапазон — от -32 767 до +32 767. При этом максимальное значение вполне может быть меньше минимального — просто ползунок придется тянуть в обратную сторону.
  • LargeChange и SmallChange — какими шагами будет двигаться ползунок при перемещении его пользователем (путем щелчка на полосе ниже ползунка или при нажатии на кнопку направления соответственно).
  • Orientation — определяет расположение ползунка (вертикальное или горизонтальное). По умолчанию для этого свойства установлено значение 1, что значит, что ориентация определяется автоматически в зависимости от конфигурации отведенного элементу управления пространства на форме (что больше — длина или высота). Однако при помощи этого свойства можно и явно указать вертикальное или горизонтальное расположение ползунка.
  • ProportionalThumb — определяет размер ползунка: будет ли он пропорционален размеру полосы прокрутки (по умолчанию) или фиксированного размера.
  • Value — главное свойство этого элемента управления. Определяет положение ползунка и то значение, которое будет возвращать этот элемент управления программе.

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

Private Sub ScrollBar1_Change()

В более сложном варианте пользователю можно будет выбирать — использовать ли ползунок или вводить значение в тестовом поле. В этом случае в событии Change для текстового поля необходимо предусмотреть проверку вводимых пользователем значений и обратную связь с ползунком.

Элемент управления SpinButton — эта та же полоса прокрутки, лишенная самой полосы и ползунка. SpinButton используется в тех ситуациях, когда диапазон выбираемых значений совсем небольшой (например, надо выбрать количество копий для печати отчета). Все свойства, которые есть у SpinButton, совпадают со свойствами ScrollBar.

3.4 Объекты формы в vba: Полоса прокрутки и Счетчик

Элемент управления ScrollBar (Полоса прокрутки) предлагает установить числовое значение, основываясь на положение ползунка, причем этот элемент может устанавливать только целые значения. Полоса прокрутки часто находится в текстовых полях, но ее можно добавлять и в другие места. Как правило, она может быть присоединена к краям окон, например, при выводе на экран части растрового рисунка.

Основным событием элемента управления Полоса прокрутки является событие Change, генерируемое при изменении текущего значения полосы. В таблице 36 перечислены основные свойства, которыми может обладать объект «Полоса прокрутки».

Таблица 36 — Основные свойства полосы прокрутки

Возвращает или устанавливает текущее значение ползунка на полосе прокрутки

Минимальное значение полосы прокрутки

Максимальное значение полосы прокрутки

Устанавливает шаг изменения значения при щелчке по одной из стрелок полосы прокрутки. Это свойство определяет величину, на которую изменится Value при щелчке по стрелке на конце линейки прокрутки.

Продолжение таблицы 36

Устанавливает шаг изменения при щелчке между ползунком и одной из стрелок полосы прокрутки

Устанавливает ориентацию полосы прокрутки. Допустимые значения:

— fmOrientationAuto или -1 (ориентация зависит от размера элемента управления. Используется по умолчанию);

— fmOrientationVertical или 0 (вертикальное расположение);

— fmOrientationHorizontal или 1 (горизонтальное расположение)

Элемент управления SpinButton (Счетчик) можно рассматривать, как полосу прокрутки без ползунка, и он выполняет те же функции, что и полоса прокрутки. Он имеет те же свойства Value, Min, Max, SmallChange, что и полоса прокрутки.

Постановка задачи. Разработать программу вычисления значения выражения, состоящее из вычисления произведения конечного ряда . Вводить пользователем с клавиатуры в одно (два) поле с именем «Исходное число А» («Исходное число В» и т.д.) при установке начального и конечного значения параметра цикла с помощью счетчика и полосы прокрутки, с отображением результата в поле «Результат».

Рисунок 41 – Окно программы «Вычисление значения произведения»

Результат должен отображаться после нажатия кнопки <ОК>. Программа должна заканчивать работу после нажатия кнопки <END>. Окно программы должно иметь вид, показанный на рисунке 41.

Технология выполнения задания:

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

2 Процесс программирования приложения Вычисление значения произведения предусмотрен тремя этапами, как показано в таблице 37.

Таблица 37 — Этапы программирования

1. Создание пользовательского интерфейса

2. Установка свойств объектов

3. Составление программного кода

3 При помощи окна Properties установить значения свойств Name и Caption элементов управления, как указано в таблице 38.

Таблица 38 – Свойства элементов управления

Вычисление значения произведения

Исходное число А

Начальное значение i

Конечное значение i

Начальное значение k

Конечное значение k

Продолжение таблицы 38

4 В модуле формы набрать следующий код, изображенный на рисунках 42а, 42б, 42в.

Рисунок 42а – Программный код кнопки «ОК»

Рисунок 42б – Программный код кнопки «End», «Счетчика1» («Счетчика2»),

«Полосы прокрутки1», («Полосы прокрутки2»), инициализации формы

Обратить внимание на две группы процедур:

1 ScrollBar1_Change () (ScrollBar2_Change ()), SpinButton1_Change () (SpinButton2_Change ()).

2 TextBox2_Change () (TextBox3_Change (), TextBox4_Change (), TextBox5_Change ()).

Первая из них обрабатывает событие Change счетчика (полосы прокрутки), при изменении значения которого его текущее значение отображается в поле ввода Начальное значение k, Конечное значение k, Начальное значение i, Конечное значение i.

Пользователь может ввести значение в поле ввода Начальное значение k, Конечное значение k, Начальное значение i, Конечное значение i с клавиатуры. В этом случае, текущее значение счетчика должно быть автоматически установлено тому значению, которое введено в это поле ввода. Как раз это и делает вторая группа процедур, обрабатывая событие Change поля ввода Начальное значение k, Конечное значение k, Начальное значение i, Конечное значение i. Таким образом, обе процедуры синхронизируют работу поля ввода и счетчика.

Рисунок 42в – Программный код процедур полей ввода «Начальное значение i»,

«Конечное значение i», «Начальное значение k», «Конечное значение k»

Пример 2. Определение размера платежей с целью накопления искомой суммы.

Постановка задачи. Предположим, что за 18 лет необходимо иметь в распоряжении 50000 р. С этой целью решено откладывать постоянную сумму каждый месяц. Если предположить, что удастся обеспечить 6% годовых, сколько денег надо откладывать каждый месяц?

Технология выполнения задания:

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

2 При помощи окна Properties установить значения свойств Name и Caption элементов управления следующим образом, как показано в таблице 39.

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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *