Элемент управления ScrollBar
Возвращает или устанавливает значение другого элемента управления на основании положения полосы прокрутки.
Замечания
ScrollBar — это отдельностоящий элемент управления, который можно поместить на форму. Это визуально похоже на полосу прокрутки, которую вы видите в некоторых объектах, таких как ListBox или раскрывающийся список ComboBox. Однако, в отличие от полос прокрутки в этих примерах, элемент ScrollBar не является частью другого объекта.
Чтобы использовать ScrollBar для задания или считывания значения другого элемента управления, необходимо написать код для событий и методов ScrollBar. Например, чтобы использовать ScrollBar для обновления значения TextBox, можно написать код, который считывает свойство Valueэлемента ScrollBar , а затем задает свойство Valueэлемента TextBox.
Стандартное свойство объекта ScrollBar — Value. Стандартное событие объекта ScrollBar — Change.
Чтобы создать горизонтальный или вертикальный объект ScrollBar, перетащите его маркеры изменения размера на форме по горизонтали или по вертикали.
См. также
- Объект ScrollBar
- примеры Microsoft Forms
- Справочник по Microsoft Forms
- основные понятия Microsoft Forms
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Обратная связь
Были ли сведения на этой странице полезными?
Обратная связь
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделе https://aka.ms/ContentUserFeedback.
Отправить и просмотреть отзыв по
Vba scrollbar как использовать
Название темы должно отражать её содержание.
Темы типа «ПОМОГИТЕ. «, «Срочно!», «Не получается сделать», «Нужна помощь» и т.п. будут удаляться без объяснения причин
33 244 Сообщений в 5 458 Тем от 6 763 Пользователей
Последний пользователь: tetrapack
Excel это не сложно
Основные форумы
Вопросы по Excel и VBA
В Label просматривать весь текст целиком
Пример использования элемента управления ScrollBar и события Scroll
В следующем примере показана автономная полоса прокрутки и сообщается об изменении ее значения при перемещении пользователем поля прокрутки. Пользователь может переместить поле прокрутки, щелкнув стрелку на концах элемента управления, щелкнув область между полем прокрутки и любой стрелкой, либо перетащив поле прокрутки. Когда пользователь перетаскивает поле прокрутки, событие Scroll отображает сообщение о том, что пользователь прокрутился, чтобы получить новое значение.
Чтобы воспользоваться этим примером, скопируйте данный пример кода в раздел описаний формы. Убедитесь, что эта форма содержит:
- Элемент ScrollBar с именем ScrollBar1.
- Два элемента управления Label1 и Label2. Label1 содержит сведения о масштабировании для пользователя. Label2 сообщает значение разности.
Dim ScrollSaved As Integer 'Previous ScrollBar setting Private Sub UserForm_Initialize() ScrollBar1.Min = -225 ScrollBar1.Max = 289 ScrollBar1.Value = 0 Label1.Caption = "-225 -----Widgets----- 289" Label1.AutoSize = True Label2.Caption = "" End Sub Private Sub ScrollBar1_Change() Label2.Caption = " Widget Changes " _ & (ScrollSaved - ScrollBar1.Value) End Sub Private Sub ScrollBar1_Exit(ByVal Cancel as MSForms.ReturnBoolean) Label2.Caption = " Widget Changes " _ & (ScrollSaved - ScrollBar1.Value) ScrollSaved = ScrollBar1.Value End Sub Private Sub ScrollBar1_Scroll() Label2.Caption = (ScrollSaved - ScrollBar1 _ .Value) & " Widget Changes by Scrolling" End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Обратная связь
Были ли сведения на этой странице полезными?
VBA-Урок 12.3. Элементы управления (Controls)
Элементы управления также могут использоваться вне форм. В следующем примере мы используем элементы управления прямо на рабочем листе.
Заметьте, что «Режим дизайнера» («Design mode») должен быть активирован, для того чтобы изменять элемент управления, который расположен на рабочем листе (и так же должен быть деактивирован, для того чтобы использовать этот элемент управления).
Перед рассмотрением этого примера, давайте посмотрим на это:
Сейчас, мы хотим добавить цвет фона ячеек и выбрать её основываясь на позиции ползунка в определенной площади 30 строк на 10 колонок.
Свойства вертикального ползунка для прокрутки экрана.
- Min 1
- Max 30 (30 строк)
- Value : позиция ползунка (в данном случае, между 1 и 30)
Горизонтальный ползунок такой же, за исключением Max : 10.
Далее идет код, который будет запускаться каждый раз, когда идет изменение значения ( Value ) вертикального ползунка:
'Серый фон в ячейках Cells.Interior.Color = RGB (240, 240, 240) 'Применяем цвет и выбираем ячейку With Cells (ScrollBar_vertical.Value, ActiveCell.Column) 'Определяем ячейку, используя Значение (Value) .Interior.Color = RGB (255, 220, 100) 'Применяем оранжевый цвет .Select 'Выбираем ячейку End With
Этот код запускается когда события Change и Scroll возникают и запустят инструкции в не зависимости от того, по какой части ползунка мы щелкнули.
Далее код для вертикального ползунка:
Private Sub vertical_bar () 'Применяем серый фон для ячеек Cells.Interior.Color = RGB (240, 240, 240) 'Применяем задний фон и выбираем ячейку With Cells (ScrollBar_vertical.Value, ActiveCell.Column) .Interior.Color = RGB (255, 220, 100) 'Оранжевый .Select 'Выбираем ячейку End With End Sub Private Sub ScrollBar_vertical_Change() vertical_bar End Sub Private Sub ScrollBar_vertical_Scroll() vertical_bar End Sub
А тут код для горизонтального ползунка:
Private Sub horizontal_bar () 'Применяем серый фон для ячеек Cells.Interior.Color = RGB (240, 240, 240) 'Применяем задний фон и выбираем ячейку With Cells (ActiveCell.Row, ScrollBar_horizontal.Value) .Interior.Color = RGB (255, 220, 100) 'Оранжевый .Select 'Выбираем ячейку End With End Sub Private Sub ScrollBar_horizontal_Change() horizontal_bar End Sub Private Sub ScrollBar_horizontal_Scroll() horizontal_bar End Sub
Вы можете скачать Excel файл с примером: scrollbar.xls
Выпадающий список и Окно со списком (ComboBox and ListBox)
Это начальная точка нашего следующего примера:
Вы можете скачать Excel файл с примером: userform4.xls
Когда форма запускается, мы хотим, чтобы 4 страны были загружены в выпадающий список (используя AddItem метод):
Private Sub UserForm_Initialize () For i = 1 To 4 '=> чтобы заполнить 4 страны ComboBox_Country.AddItem Cells (1, i) 'Добавляем значение ячеек от A1 до A4 используя цикл Next End Sub
Когда значение выпадающего списка меняется, мы хотим добавить города выбранной страны, используя цикл, подобен предыдущему.
Для того, чтобы сделать это, нам нужно номер колонки и номер строки.
Свойство ListIndex содержит порядковый номер выбранного элемента в выпадающем списке (в отличие от Value, которое содержит значение элемента списка). Заметьте, что ListIndex начинается с номера 0.
Номер колонки получается из:
column_number = ComboBox_Country.ListIndex + 1
Чтобы получить количество строк в выбранной колонке определенной страны, мы можем найти номер последней непустой ячейки:
rows_number = Cells(1, column_number).End(xlDown).Row
Используя эту информацию, теперь возможно создать цикл, чтобы добавить города в список:
Private Sub ComboBox_Country_Change () 'Очищаем список (в противном случае, города будут добавлены сразу) ListBox_Cities.Clear Dim column_number As Integer, rows_number As Integer 'Порядковый номер выбранного элемента (ListIndex начинается с 0): column_number = ComboBox_Country.ListIndex + 1 'Количество строк в выбранной колонке со странами: rows_number = Cells(1, column_number).End(xlDown).Row For i = 2 To rows_number '=> наполнение списка городами ListBox_Cities.AddItem Cells(i, column_number) Next End Sub
Примечание: Мы могли бы сократить код, но это бы сделало его менее читабельным:
Private Sub ComboBox_Country_Change() ListBox_Cities.Clear For i = 2 To Cells(1, ComboBox_Country.ListIndex + 1).End(xlDown).Row ListBox_Cities.AddItem Cells(i, ComboBox_Country.ListIndex + 1) Next End Sub
Город, который мы выберем, будет введен в текстовое поле:
Private Sub ListBox_Cities_Click() TextBox_Choice.Value = ListBox_Cities.Value End Sub
Здесь вы можете посмотреть пример в готовом Excel файле: userform4b.xls