В инструкции
Range (“A6”).Select
Active Cell.FormulaR1C1=”Региональная торговая компания АВС”
Range (“A7”).Select
Active Cell.FormulaR1C1=”Проспект правды, 157”
Range (“A8”).Select
Active Cell.FormulaR1C1=”49083,Днепропетровск, Украина”
End Sub
В модуле можно вводить , копировать, вставлять, перемещать и удалять инструкции VBA и комментарии, используя приёмы, знакомые из текстовых процессов.
Первая и последняя строки исходного кода являются начальной и конечной точками макроса. Макрос начинается инструкцией Sub (), содержащей его имя, а заканчивается инструкцией End Sub (они называются ключевыми словами и выделяются синим цветом ).
Для получения справки по ключевому слову, щелкните на нём и нажмите клавишу F1. Для ключевого слова Sub будет выведено:
Инструкция Sub
Описывает имя, аргументы и текст программы, составляющий тело процедуры Sub
Синтаксис
[HrivateIPublic][Static] Sub имя [(список аргументов)]
инструкции
[Exit Sub]
Инструкции
End Sub
Синтаксис инструкции Sub содержит следующие элементы:
Элемент | Описание |
Pablic | Необязательный. Указывает, что процедура Sub доступна для всех других процедур во всех модулях. |
Private | Необязательный. Указывает, что процедура Sub доступна для других процедур только того модуля, в котором она описана. |
Static | Необязательный. Указывает, что локальные переменные процедуры Sub сохраняют и т.д. |
Разделы справки содержат ссылки с примерами, которые можно копировать и вставлять их в модуль.
Перед тем как начать изложение вопроса “ вставка инструкций в существующий макрос”
(т. е. Редактирование текста макроса), необходимо ознакомиться со структурой объектов Exel VBA.
Объекты, свойства и методы.
VBA является объектно-ориентированным языком. Это означает, что все элементы в среде Exel рассматриваются как объекты, а не как абстрактное множество структур данных. Каждый объект является “контейнером” для находящегося внутри него объектов. Наибольший объект - это само приложение Exel , его название Application. Внутри него содержится более 100 объектов более низкого уровня, многие из которых также не являются единичными, а имеют вложения.
Первая инструкция VBA в макросе CompanyAddress после Sub (не считая коментарии)
Range(“A6”).Select
В начале задаётся объект (Obgect), а затем действие над этим объектом. Объект Range – это ссылка на ячейку А6, а выполняемое действие Select – выделение диапазона , т.е. в частном случае этой ячейки. Кроме методов объекты имеют свойства (properties). Если считать, что объекты – это существительные, а методы – глаголы, то свойства являются прилагательными.
В инструкции
Active Cell.FormulaR1C1=”Региональная торговая компания АВС”
Объект- активная ячейка Active Cell , а FormulaR1C1 – это свойство , которое позволяет задавать содержимое активной ячейки, в которую вводится Региональная торговая компания АВС.
Оставшиеся инструкции обеспечивают выделение и ввод текста в еще две ячейки А7и А8. Имеющиеся в Exel объекты, их методы и свойства, могут быть просмотрены в редакторе VBA. Выберите Сервис/Макрос/Редактор Visual Basic. Затем в редакторе в меню Вид(View) выберите команду Просмотр Объектов (Obgect Browser). Список в левой части окна будет содержать классы объектов Exel (это как описание типа объекта). Если пропустить список классов и выбрать в нём Range, то справа будут выделены компоненты класса (memebers)- перечень свойств и методов.
Семейство (Collection) образуется из нескольких экземпляров объекта. Конкретный экземпляр в семействе объектов идентифицируется с помощью имени или номера. Например, семейством всех листов в книге является WorkWheets (“Итоги”). Для циклической работы с элементами семейства в VBA введён оператор For Each…Next.
Пример. Вывести в ячейку А1 в каждом листе активной рабочей книги значения Лист 1, Лист 2 и т. д. Количество листов неизвестно
Sub Enter SheetNum ()
n = 0
For Each WorkSheet In WorkSheets ()
n = n+1
WorkSheet.Activate
Range (“A1”).Select
ActiveCell.FormulaR1C1 = “Лист ”+Str(n)
Next