Продолжим рассмотрите элементов управления, и следующий элемент, который мы разберем, — «Полоса прокрутки». Сразу перейдем к разработке интерфейса очередного примера. Откроем новую книгу и на листе расположим две полосы прокрутки и два текстовых окна (рис. 1.40). Левая полоса прокрутки вместе с левым текстовым окном предназначена для отображения показателей работы одного из менеджеров (для определенности — Петрова), а аналогичные правые элементы — для отображения показателей работы другого (Сидорова). Передвижением ползунка левой либо правой полосы прокрутки руководитель может установить показатель работы менеджера. Это будет числовое значение от 0 до 100. Одновременно с этим текстовое окно по вертикали займет соответствующее положение.

Рис. 1.40. Пример использования полосы прокрутки
Для левого текстового окна выберем Petrov в качестве значения свойства Name, а у левой полосы прокрутки для аналогичного свойства установим значение Scroll Petrov. Соответственно, у правого текстового окна свойство Name Sidorov, а у правой полосы прокрутки Name — ScrollSidorov.
У полосы прокрутки часто используются следующие свойства:
У текстового окна (как у любого другого элемента) есть свойство Тор, которое определяет положение элемента по вертикали, начиная от верхнего края листа. А при изменении положения движка левой полосы прокрутки автоматически выполняется процедура ScrollPetrov_Change(), для правой полосы, соответственно, ScrollSidorov_Change().
Теперь более точно сформулируем задачу для программной разработки. Будем считать, что у нас в подчинении работают два менеджера и необходимо ежедневно сопоставлять результаты их работы. Скажем, количественная оценка каждого сотрудника изменяется в интервале от 0 до 100 баллов. Технически для отражения результата работы менеджера руководителю необходимо передвинуть движок соответствующей линейки прокрутки. В этом случае текстовое окно должно синхронно перемещаться на листе по вертикали, а в самом окне отображаться количество баллов. При этом, когда движок в верхнем положении, текстовое окно должно располагаться на уровне верхней границы полосы прокрутки. Соответственно, при нижнем положении движка текстовое окно должно располагаться на уровне нижней границы полосы прокрутки. Для реализации этого в окне свойств для полос прокрутки установим значения Min, равные 0, а значения Мах и Height равными 100. Установим также для этих элементов: SmallChange = 1 и LargeChange = 5. Теперь можно написать процедуры, которые выполняются при передвижении движков левой (листинг 1.23) и правой (листинг 1.24) полос прокрутки.
1 2 3 4 5 6 7 8 | ' Листинг 1.23. Процедура, выполняемая при перемещении движка левой линейки Private Sub ScrollPetrov_Change() Petrov.Top = ScrollPetrov.Value + ScrollPetrov.Top Petrov.Text = "Петров " + CStr(ScrollPetrov.Value) Inten = 155 + ScrollPetrov.Value - ScrollPetrov.Min Petrov.ForeColor = RGB(Inten, Inten, Inten) Petrov.BackColor = RGB(0, Inten, 0) End Sub |
1 2 3 4 5 6 7 8 | ' Листинг 1.24. Процедура, выполняемая при перемещении движка правой линейки Private Sub ScrollSidorov_Change() Sidorov.Top = ScrollSidorov.Value + ScrollSidorov.Top Sidorov.Text = "Сидоров " + CStr(ScrollSidorov.Value) Inten = 155 + ScrollSidorov.Value - ScrollSidorov.Min Sidorov.ForeColor = RGB(Inten, Inten, Inten) Sidorov.BackColor = RGB(inten, 0, 0) End Sub |
Перед тем как прокомментировать работу программы, полезно еще раз посмотреть на результат ее работы (см. рис. 1.40). Кроме синхронного с движками полос прокрутки перемещения текстового окна по вертикали, изменяется сообщение в этом окне и меняются цвета фона и основного текста. Так, при верхнем положении движка цвет букв и фона более бледный, а при перемещении движка вниз цвета становятся более яркими. Поясним теперь некоторые конструкции этих процедур. Пояснения сделаем по тексту, представленному в листинге 1.23. В строке Petrov.Тор = ScrollPetrov.Value + ScrollPetrov.Top производится изменение положения текстового окна в соответствии с положением движка. Фактически это приводит к перемещению текстового окна по вертикали. В следующей строке используется функция CStr для преобразования данных из числового типа в строковый. В результате в текстовое окно выводится сообщение о текущем положении движка на полосе прокрутки.
После этого в следующих трех строках производится изменение фонового и основного цветов текстового окна. Как уже ранее отмечалось, интенсивность цвета меняется от 0 до 255. В результате выполнения этих строк максимальная интенсивность зеленого цвета для фона обеспечивается при нижнем крайнем положении движка. Для основного цвета интенсивность также будет максимальной. При другом крайнем положении движка интенсивности устанавливаются равными 155. Зеленый фон в этом случае станет более бледным, а цвет букв серым.
Управление Excel из других офисных программ пакета Microsoft Office
Как отправлять электронные сообщения Microsoft Outlook прямо из вашего листа таблицы Excel с помощью VBA
Очень простой пример управления Word из Excel с помощью VBA
О. А. Сдвижков — Непараметрическая статистика в MS Excel и VBA
С. Роман — Использование макросов в Excel
Как обеспечить вывод значений выпадающего списка с двоеточием, как в бухгалтерских программах?
Как при помощи инструментов Excel решить задачу о коробке максимального объема
Построение графика функции одной переменной средствами Excel
Как правильно вводить, редактировать и копировать формулы в таблицах Excel
Как в Excel обойтись без подстановки шрифтов при применении малых кеглей