Реферат: Работа с макросами в Excel


Список

  • Выберите элемент управления 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 - помещать его в указанную ячейку.

  • Откройте окно Microsoft Visual Basic , выбрав последовательно команды Macro (Макрос), Visual Basic Editor (Редактор Visual Basic) из меню Tools (Сервис) .
  • В меню Insert (Вставка) выберите пункт UserForm . Появится макет будущей формы, которая по умолчанию называется UserForm1 . Вы можете поменять имя, указав его в окошке свойств справа от поля (Name) . Не путайте имя пользовательской формы со свойством Caption , которое определяет подпись объекта (заголовок).

Обратите внимание, что к проекту рабочей книги добавилась папка Forms (Формы) , содержащая нашу пользовательскую форму. В дальнейшем, для редактирования необходимо будет выбрать ее в окне проекта.

Теперь, с помощью панели инструментов Control Toolbox (Элементы управления) , следует поместить на форму элементы управления.


  • Выберите элемент управления Combo Box (Поле со списком) на панели инструментов.
  • Щелкните на макете мышкой в то место, где Вы хотите видеть этот элемент.
  • Кликните правой клавишей мышки на объекте и выберите в появившемся контекстном меню пункт Properties (Свойства) . Появится окошко, в котором следует задать свойства элемента управления.
  • По умолчанию полю со списком присваивается имя ComboBox1 . Вы можете определить другое имя, указав его справа от поля (Name) .
  • Определим ячейки, которые будут хранить элементы нашего списка и выбранное значение:
    • свойство ControlSource задает адрес ячейки, в которой хранится выбранное значение. Содержимое этой ячейки, кроме того, отражается в текстовом поле нашего элемента. Введем, например, B2 в это поле;
    • свойство RowSource определяет источник элементов списка (предположим, что список содержится в диапазоне A1:A3 на текущем листе).


Теперь надо сделать так, чтобы пользовательскую форму можно было запускать непосредственно из Excel:

  • В меню Insert (Вставка) выберите пункт Module (Модуль) . Обратите внимание, что проект рабочей книги пополнился еще одной папкой Modules (Модули) .
  • Наберите текст процедуры, как показано на рисунке.
  • Теперь непосредственно в Excel мы можем пользоваться нашей формой, запуская ее как макрос. Она будет фигурировать под именем Show_Form или под тем, которое Вы сами ей дадите.

К-во Просмотров: 418
Бесплатно скачать Реферат: Работа с макросами в Excel