Смекни!
smekni.com

Работа с макросами в Excel (стр. 2 из 3)

Панель инструментов "Формы".
Панель инструментов Forms (Формы) используется для создания на рабочем листе простых элементов управления:
  • Label (Надпись) - текст, поясняющий назначение элемента управления.
  • Group Box (Группа) - рамка, объединяющая связанные элементы управления (флажки, переключатели).
  • Button (Кнопка) - кнопке можно назначить макрос, который будет запускаться при выборе этого элемента управления.
  • Check Box (Флажок) - включает или выключает определенную опцию.
  • Option Button (Переключатель) - служит для выбора только одного параметра в группе.
  • List Box (Список) - поле, содержащее список значений.
  • Combo Box (Поле со списком) - поле с раскрывающимся списком (в текстовом поле отображается элемент, выбранный в списке).
  • Scroll Bar (Полоса прокрутки) - элемент управления, служащий для прокрутки списка значений.
  • Spinner (Счетчик) - кнопка, позволяющая увеличивать или уменьшать численное значение.

Рассмотрим несколько примеров:

Флажок
  • Выберите элемент управления Check Box (Флажок) на панели инструментов Forms (Формы).
  • Щелкните в том месте рабочего листа, где Вы хотите видеть флажок.
  • Кликните правой клавишей мышки на флажке и выберите в появившемся контекстном меню пункт Format Control (Формат объекта).
  • Задайте свойства переключателя в диалоговом окне Format Control (Формат элемента управления).
  • Введите адрес какой-либо ячейки в поле Cell link (Связать с ячейкой). В указанной ячейке будет храниться значение, соответствующее состоянию флажка (ИСТИНА, если флажок установлен и ЛОЖЬ в противном случае).

Группа переключателей

  • Выберите элемент управления Group Box (Группа) на панели инструментов Forms (Формы).
  • Нарисуйте на рабочем листе рамку, в которую будут помещены переключатели, составляющие определенную группу.
  • Выберите на панели инструментов элемент управления Option Button (Переключатель) и щелкните внутри рамки там, где должен находиться переключатель.
  • Повторите процедуру для каждого переключателя этой группы.
  • Выберите команду Format Control (Формат объекта) из контекстного меню любого переключателя и введите адрес ячейки, в которой будет храниться номер выбранного переключателя, в поле Cell link (Связать с ячейкой).


Список

  • Выберите элемент управления List Box (Список) на панели инструментов Forms (Формы).
  • Нарисуйте на рабочем листе рамку, в которую будет помещен список.
  • Кликните правой клавишей мышки на списке и выберите в появившемся контекстном меню пункт Format Control (Формат объекта).
  • В поле Input range (Формировать список по диапазону) укажите адрес диапазона, в котором находятся элементы списка на рабочем листе.
  • Введите адрес какой-либо ячейки в поле Cell link (Помещать результат в ячейку). В указанной ячейке будет храниться номер элемента, выбранного из списка.


Панель инструментов "Элементы управления".

Элементы, расположенные на панели инструментов Control Toolbox (Элементы управления), называются элементами Active X. Они несколько отличаются от элементов управления, расположенных на панели Forms (Формы). Скорее они ближе к элементам управления Visual Basic, т.к. при добавлении объекта Active X на рабочий лист создается макрос, который сохраняется вместе с этим элементом, а не только запускается при его выборе. При копировании или перемещении такого объекта автоматически будут скопированы или перемещены все процедуры, связанные с ним.

Некоторые элементы управления, имеющиеся на панели инструментов Control Toolbox (Элементы управления), отсутствуют на панели Forms (Формы):
  • Text Box (Поле) - поле, в которое можно ввести текст.
  • Toggle Button (Выключатель) - кнопка, которая остается нажатой, если Вы ее выбираете. Чтобы выключить эту кнопку, необходимо нажать ее еще раз.
  • Image (Рисунок) - элемент управления, который позволяет внедрить рисунок в форму.
  • More Controls (Дополнительные элементы) - список дополнительных элементов Active X.

Для редактирования элемента Active X необходимо войти в Design Mode (Режим конструктора), выбрав соответствующий инструмент на панели Control Toolbox (Элементы управления). Чтобы сделать элемент активным, режим конструктора следует отключить. Выбрав кнопку Properties (Свойства) на этой панели инструментов, Вы сможете задать свойства элемента Active X, инструмент (Исходный текст) позволяет просмотреть модуль Visual Basic, содержащий текст макроса, связанного с элементом.

Рассмотрим простой пример. Попробуем создать элемент Toggle Button (Выключатель) на рабочем листе:

  • Выберите инструмент Toggle Button (Выключатель) на панели Control Toolbox (Элементы управления) и кликните мышкой в том месте рабочего листа, где Вы хотите видеть выключатель. При этом автоматически активизируется кнопка Design Mode (Режим конструктора). Редактирование и изменение свойств элементов управления происходит именно в этом режиме.
  • Нажмите на кнопку Properties (Свойства) панели инструментов, появится окно, в котором Вы можете задать свойства объекта. В этом окне слева находится список свойств, которыми обладает данный объект, а справа задаются значения этих свойств. Например, установив LinkedCell=A1, Вы сможете определить состояние выключателя с помощью связанной ячейки (если в ячейке A1 хранится значение ИСТИНА, значит выключатель нажат). Свойство Picture позволяет выбрать картинку, которая будет помещена на объекте.
  • Выберите инструмент View Code (Исходный текст) для того, чтобы отредактировать текст программы связанной с элементом Active X. Здесь Вы можете установить поведение объекта в связи с различными событиями (клик, двойной клик, нажатие рабочей клавиши мышки, освобождение рабочей клавиши мышки). Например, действия, которые должны произойти при клике на выключателе ToggleButton1 описываются в процедуре ToggleButton1_Click.
  • Отожмите кнопку Design Mode (Режим конструктора) на панели инструментов Control Toolbox (Элементы управления) для того, чтобы сделать выключатель активным.

Подобным способом можно создать элемент управления List Box (Список). Диапазон данных для заполнения списка, созданного с помощью панели инструментов Control Toolbox (Элементы управления), определяется с помощью свойства ListFillRange категории Misc (Разное). Список можно связать с ячейкой рабочего листа, и выбранный из списка элемент будет отображен в этой ячейке (свойство LinkedCell категории Misc (Разное)). Обратите внимание, что связанная ячейка в этом случае хранит само выбранное значение, а не его номер в списке.


Создание пользовательской формы средствами VBA.

Описанными выше методами Вы можете создать достаточно простые электронные формы, хранящиеся на определенных листах рабочей книги. Однако может возникнуть ситуация, когда Вы заранее не знаете, как именно должна выглядеть форма, а определяете это в процессе работы. Например, если Вы заполняете бланк заказа товара, необходимо вводить данные в зависимости от вида предполагаемой покупки (если Вам нужна обувь, видимо, не имеет особого значения рост или объем груди). То есть количество и вид элементов управления заранее не известны. В этом случае Вам поможет объект VBA UserForm (пользовательская форма), который имеет определенные свойства и методы. Его можно создать программно, описав элементы управления и поведение в зависимости от различных событий. Это достаточно сложно, поскольку требует знания языка Visual Basic for Application (Visual Basic для приложений). Однако простую пользовательскую форму можно создать, обладая минимальным опытом работы со встроенным Visual Basic. Такая форма будет иметь заданную конфигурацию, но не зависеть от определенного листа рабочей книги. Вы сможете инициализировать ее, описав элементы управления до открытия формы. Так как пользовательская форма открывается в отдельном окне, можно скрыть или показать ее на экране одновременно с рабочей книгой. То есть, если Вы хотите, чтобы электронная форма жила своей собственной жизнью, создайте ее средствами VBA.

Построим для примера пользовательскую форму, содержащую элемент управления (Поле со списком) . Мы будем выбирать какое-либо значение из списка, а Excel - помещать его в указанную ячейку.