В инструкции

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