В начало
Статьи
Библиотека
Разное

Вот здесь - новый сайт, заходите немедленно!

kift - Коллекция Интересных Фактов и Теорий

А тут можно поболтать и побухтеть, милости просим:

kift - неизданное

Введение в программирование на примере VBA

Часть I Создание макроса Word

Аннотация
Предисловие
Часть I. Макрос Word
     1. Проектирование и запись макроса
     3. Внесение исправлений
     Итоги
Часть II. Макрос-приложение
     4. Проектирование
     5. Визуальное редактирование
     6. Запуск и остановка
     7. Вывод данных
     8. Выбор ответа
     9. Перемещение по списку
     10. Обратное перемещение
     11. Новая версия
     12. Реализация новой версии
     13. Завершение работы
     Итоги
Часть III. Объект на основе класса
     14. "Основное" приложение
     15. Компонент-таймер
     Итоги
Послесловие

Занятие 2. Детальный разбор макроса

Цель занятия – разбор записанного макроса и уяснение деталей его работы. Задача усложняется тем, что вы еще не знакомы с программированием. Это не страшно, собственно исправление макроса мы предварим подробным его разбором – в процессе чего вы узнаете очень много нового. Имейте в виду, что для эффективной работы вам надо будет изучить весь учебник, не ограничиваясь лишь первой частью…

Введение в программирование

В каждом приложении MS Office любой версии присутствует встроенное средство для создания и обработки действительно мощных макросов. Как основа используется язык программирования, называемый Visual Basic for Applications (VBAVisual Basic для приложений).

Что же такое язык программирования и для чего он нужен?

Сложнейшее достижение современной цивилизации – компьютер, без сомнения, изменило жизнь людей. Мало задач, где нельзя пока его применить. Но сам по себе никакой, даже самый совершенный, компьютер не сделает ничего. Это – аккуратный и скрупулезный исполнитель, которому надо подробным образом объяснить, что же от него требуется. Средством для такого общения стали языки программирования.

Язык программирования можно определить как:

  • соглашение между человеком-программистом и компьютером, в соответствии с которым человек дает указания компьютеру о действиях, выполнение которых требуется от последнего,
  • и, также, как совокупность средств, применяемых для этого.

Еще определение. Программа есть последовательность действий, выполнение которых требуется от компьютера, а также порядок их выполнения и условия, при которых это выполнение происходит.

Разновидности программ

Среди огромного разнообразия существующих программ можно смело определить следующие группы:

Операционные системы – представляют собою совокупность программных средств, обеспечивающих работу компьютера и взаимодействие его с пользователем, другими компьютерами и устройствами. Например – популярные Windows и MS DOS.

Системные программы – предназначены для непосредственного управления устройствами компьютера (но не для взаимодействия с пользователем). Таковы, к примеру, драйверы устройств – небольшие программки, управляющие дисководами, принтером, другими устройствами.

Приложения – то, что в «обиходе» подразумевается под программами вообще. Это – продукты, работающие под управлением определенной операционной системы и выполняющие конкретные задачи. Подавляющее большинство программ относится к этой группе, например – пакет MS Office, игры, аудио- и видеопроигрыватели и др.

Языки – условное название разнообразной группы программ, предназначенных для создания программ. Языки также можно разделить на категории – языки высокого уровня, имеющие понятный синтаксис и удобные в работе, но создающие довольно громоздкие и медленные программы (таковы, к примеру, семейства языков Basic, Java, Delphi, отчасти языки C/C++) и языки низкого уровня, продуцирующие быстрые и компактные продукты, но сложные для изучения и работы (отчасти C/C++, ассемблер). К языкам можно условно отнести и различные средства, предназначенные для создания справочных систем, иллюстраций, видео-  и аудиофрагментов.

BASIC, VB, Диалекты VB

Среди множества языков программирования семейство языков Basic выделяется своей простотой и доступностью для программиста.

Язык Basic (Beginner’s All-purposes Symbolic Instruction CodeВсецелевой Символический Код для Начинающих, буквальный перевод сокращения – Базовый, Основной) был создан в 1963 г. профессорами Дартмутского университета Дж. Кемени и Т. Курцем для обучения студентов. Благодаря своим преимуществам язык Basic быстро завоевал широчайшее признание в среде профессиональных и полупрофессиональных программистов.

Языки семейства Basic отличаются простотой составления программ, быстротой и легкостью отладки и гибкостью в использовании.

Современное поколение языков Basic  имеют в названии слово Visual (Визуальный, Видимый). Дело в том, что, начиная с версии языка №1, появившейся в 1991 году, в него встроена очень важная особенность, позволившая языку получить вторую жизнь – так называемое визуальное редактирование, то есть возможность видеть внешний вид будущей программы еще на этапе разработки и изменять его простыми, интуитивно понятными средствами. Более подробно визуальное редактирование будет рассмотрено ниже.

Язык Visual Basic специально создан для программирования приложений для популярной и потенциально мощной операционной системы Windows фирмы Microsoft.

Семейство Visual Basic сегодня состоит из трех сходных между собой диалектов языка: собственно Visual Basic, Visual Basic for Application – язык, встроенный в приложения MS Office и VBScript, применяемый для программирования в Internet.

В MS Office 97 встроена версия VBA 5.0, в MS Office 2000 – VBA 6.0, в последующих версиях (а на момент написания книги существовали MS Office XP и 2003) – VBA 6.3. Версии, конечно же, отличаются друг от друга, но на нашем уровне изучения различия эти несущественны, и останавливаться на них мы не будем.

Отличительные особенности VBA.

Прежде всего, конечно, простота и скорость построения маленьких утилит-макросов. Затем – простота отладки и использования. И, конечно же, способствует распространению VBA то, что он встроен в один из популярнейших офисных пакетов.

Но и недостатки у VBA есть. Так, программа на VBA не может существовать отдельно от документа приложения Office. Ближайшее следствие этого – низкая скорость выполнения.

Не так много возможностей приложений Office доступны для VBA, сложные задачи приходится решать необычными, «экстремальными» способами (это присуще и другим диалектам VB). Наконец, не вполне адекватная документация, прилагаемая к VBA фирмой-производителем, зачастую отпугивает начинающих пользователей.

Тем не менее, VBA остается очень полезен для тех, кто хотел бы ускорить и упростить работу в приложениях MS Office.

Три составляющие изучения языка, IDE

Изучение любого языка включает в себя изучение трех его «ипостасей», неотделимых друг от друга.

Во-первых, это – синтаксис, или правила построения «фраз» и использования «слов».

Во-вторых – лексика, или словарно-понятийный набор терминов, используемых данным языком.

И, в-третьих – средства языка, используемые для создания текстов (читай – программ), для записи мыслей автора на каком-то носителе.

Для человеческих языков средствами будут, к примеру, ручка и бумага в Европе, кисть, тушь и бумага в Китае, печатная машинка и т.п. У компьютерных языков средства – это специальные программы, иногда не совсем верно называемые языками.

Современные языки имеют сложные и мощные средства, предназначенные для создания, отладки, документирования и проектирования больших приложений, над которыми работают коллективы программистов. Эти программные комплексы сокращенно называются IDEIntegrated Development Environment, – Интегрированная Среда Разработки.

Описание IDE VBA

Собственную IDE имеет и VBA. Для успешного продолжения работы следует провести обзор IDE.

Перейдем к практическому освоению среды программирования языка VBA.

Вызвать IDE VBA вы можете, выполнив команду СервисМакросРедактор Visual Basic. Проще и быстрее нажать [Alt]+[F11].

Не забудьте, что мы работаем с приложением Word. Если надо – запустите Word, откройте документ, созданный нами раньше.

  • Одним из описанных способов вызовите IDE VBA.

Перед вами появится окно:

Именно здесь проводится основная работа с макросами VBA.

Как видите, окно IDE VBA имеет определенное сходство с другими приложениями Office. Есть заголовок, в котором, помимо имени приложения, видно название открытого документа. Ниже – строка меню. Далее – панель кнопок. В IDE VBA панель кнопок называется ToolbarПанель Инструментов.

Ниже слева специальное окно, называемое Project ExplorerПроводник Проекта (на рисунке его заголовок Project-Project).

Далее, под ним окно PropertiesСвойства. Его заголовок здесь Properties-NewMacros.

Назначение этих окон мы разберем позже.

Справа – большая область, где будет происходить основная работа. Подробнее – потом.

Заметьте сразу, что IDE допускает собственную настройку для удобства работы. Так, внутренние окна IDE можно перетаскивать, «ухватив» мышью за заголовки. При приближении к границе IDE внутренние окна «прилипают» к ним. Двойной щелчок по заголовку внутреннего окна переводит его в более привычный вид, повторный двойной щелчок вновь превращает в «прилипающее». Доступна настройке и Toolbar – щелчок правой кнопкой над Toolbar вызывает небольшое меню, выбрав в котором пункт Настройка… (в некоторых версиях Customize...) вы получаете диалоговое окно, предоставляющее возможность настроить Toolbar по своему вкусу. Подробно мы рассматривать это не будем, настройка достаточно интуитивна и понятна.

Начало работы с макросом

Приступим к изучению созданного ранее макроса.

Для этого следует открыть его в IDE. Подобные действия совершаются при помощи Project Explorer.

  • Увеличьте окно Project Explorer, к примеру, переведя его в «плавающее» состояние двойным щелчком по заголовку, а затем мышью «растяните» окно. Это делается лишь для удобства, в дальнейшей работе вы вольны размещать это окно так, как захотите.

Вы увидите что-то вроде этого:

Как видно, строение этого окна напоминает левую панель проводника Windows. И действия производятся схожие – навигация по компонентам проекта.

Если по какой-то причине окна Project Explorer нет, вызовите его, выполнив команду меню IDE VBA ViewProject Explorer

Проектом называется совокупность составных частей документа (в данном случае – Word). Проект самодостаточен, не требует каких-то дополнительных компонентов для функционирования. Как правило, проект будет содержать минимум один документ и может содержать модули макросов. Физический носитель проекта – шаблон Word (файл с расширением .dot) или собственно документ Word.

Определение из справки VBA звучит так: «Проект есть набор модулей». Типы и особенности модулей разберем позже.

В основном окне Project Explorer мы видим «древовидную» структуру. Основные узлы (названия которых выделены жирным) и есть обозначения проектов.

На рисунке в окне Project Explorer содержится два проекта, один под названием Normal, а другой – Project (Макрос_Word_1). Соответственно, первый из них представляет содержимое шаблона Normal.dot, который по умолчанию является основой для создаваемых документов Word. Второй проект представляет созданный нами документ. В скобках – имя файла, присвоенное вами при сохранении документа Word.

В составе проекта отображаются папки, содержащие другие объекты. В нашем случае первая папка (Microsoft Word ObjectsОбъекты MS Word) включает объект под названием ThisDocumentЭтотДокумент. Данный объект представляет созданный нами документ.

Вторая папка (ModulesМодули) включает объект под названием NewMacrosНовыйМакрос. Именно этот компонент содержит созданный нами макрос. Вообще, вновь создаваемые макросы будут помещаться в этот компонент. Затем вы можете их перемещать.

Вверху окна Project Explorer видимы три кнопки. Левая предназначена для вызова кода объекта (что это – мы вскоре узнаем), средняя – для вызова «визуального» вида объекта, правая кнопка переключает вид дерева проектов.

  • Нажмите правую кнопку вверху окна Project Explorer.

Как видите, дерево изменилось:

Небольшие проекты удобнее просматривать таким образом. Если хотите, верните окно Project Explorer к прежнему виду.

  • Двойным щелчком по заголовку превратите окно Project Explorer в «прилипающее». Пускай так и остается.

Убедитесь, что выделен компонент NewMacros. Если надо – щелкните на нем.

  • Щелкните по левой кнопке вверху окна Project Explorer (альтернатива – двойной щелчок по выделенному компоненту).

Появится окно кода модуля (быть может, оно уже было открыто).

Основная часть окна занята пока непонятным для вас текстом. Это и есть код макроса, записанного нами.

Вверху окна два падающих списка. Левый (с надписью (General)Основной [раздел]) содержит список объектов модуля (подробнее – потом), а правый (с надписью СтильСноска) – список макросов, содержащихся в модуле. Как из этого следует, в модуле может быть несколько макросов.

В левом нижнем углу две кнопки. Они переключают отображение модуля из «помакросного» – когда вы можете работать только с одним макросом одновременно, в «сплошное», когда видно все содержимое модуля. Сейчас включен «сплошной» режим. Потом вы сами можете опробовать эти режимы и выбрать подходящий для себя.

Если почему-то в верхнем правом списке надпись, отличающаяся от имени созданного нами макроса – исправьте ситуацию, выберите в списке надпись СтильСноска.

Итак, перейдем к рассмотрению кода макроса.

Разбор кода макроса

В окне кода мы видим несколько строк текста. Это – код макроса, то есть собственно инструкции языку VBA, описывающие действия, которые следует произвести.

Здесь следует сделать пояснение. Любой текст, размещенный в окне кода, будет восприниматься языком VBA как инструкции к действию. Можно сказать, что программирование на VBA сводится к написанию текста в окне кода.

Первая строка выглядит так:

Sub СтильСноска()

Это – заголовок макроса.

Последняя строка макроса:

End Sub

Найдите эти строки в окне кода.

Эти две строки обязательны, они ограничивают макрос.

Итак, структура макроса всегда должна выглядеть так:

Sub <имя_макроса>

.

.

End Sub

Слово Sub – сокращение от англ. SubRoutine – ПодПрограмма.

Подпрограмма – есть логически завершенная часть программы, выполняющая какие-то определенные действия.

Другое название подпрограммы, принятое в терминологии VBA – процедура.

Таким образом, макрос, по сути, есть подпрограмма. Отличительная особенность макросов – автоматическая запись средствами Word. Кроме того, макросы Word (и других приложений, работающих с VBA) не могут составлять отдельную программу, а содержатся в документах Word (или других приложений). Далее мы будет употреблять термины «макрос», «процедура» и «подпрограмма» как равнозначные.

<имя_макроса> (в нашем случае – СтильСноска) – уникальный в рамках проекта идентификатор. Это значит, что именно по имени язык VBA определяет, с каким объектом производится работа. Отсюда следует, что внутри проекта не должно быть объектов, в том числе макросов, с одинаковыми именами.

Правила именования языка VBA

Имя объекта в VBA всегда представлено одним словом. Составлять имя могут буквы (предпочтительно английские), цифры и знак подчеркивания. Начинаться имя всегда должно с буквы.

Язык VBA не производит различия между регистром символов. То есть, имена СтильСноска, стильсноска и СТИЛЬсноска для VBA совершенно одинаковы. Будьте внимательны и помните об этом!

Слово End переводится с англ. как Конец. Таким образом, строка

End Sub

значит Конец Подпрограммы.

Первая и последняя строки процедуры ограничивают ее, предоставляя возможность языку VBA воспринять код правильно.

Строки между первой и последней составляют тело процедуры.

Именно здесь находятся значимые инструкции языка.

Каждая строка кода VBA описывает какое-то одно действие, производимое языком.

Иногда строки объединяются (для этого используется символ : – двоеточие), но это ухудшает читаемость кода, не давая никаких преимуществ.

Первые несколько строк тела нашего макроса начинаются с символа апострофа () и содержат текст, поясняющий макрос. Эта конструкция называется комментарий.

Комментарий – произвольный текст, поясняющий код. Комментарием считается любая строка, начинающаяся с апострофа () – и до конца строки. Язык VBA игнорирует подобные строки, они предназначены лишь для удобства программиста.

Вы видите, что созданные автоматически комментарии содержат текст, который отображался в диалоговом окне, возникавшем в начале записи макроса.

Собственно код начинается строкой

Selection.Find.ClearFormatting

А вот для дальнейшего понимания следует сделать большое отступление и рассмотреть принципы программирования на VBA.

Объект

В отличие от многих других языков, VBA работает согласно объектной парадигме. Это значит, что VBA манипулирует объектами.

Объект – некая уникальная сущность, имеющая собственные количественные и качественные характеристики.

Подробнее рассмотрим это абстрактное – и непонятное – определение.

Будет правильно, если мы сразу уточним – объектная парадигма в определенной мере моделирует структуру окружающего нас мира, поэтому правомерно приводить примеры из реальности, окружающей нас.

Возьмем как пример объекта какого-то (реального) человека. Очевидна его уникальность – другого такого нет и быть не может. Идентификатором человека может служить номер паспорта (так как имя с фамилией зачастую повторяются).

Характеристики реального объекта-человека эмпирически можно разделить на несколько групп.

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

Характеристики, определяющие объект как статическую сущность, в объектной парадигме называются свойствами.

Свойство есть качественно-количественная статическая характеристика объекта.

Кроме свойств, объект имеет поведенческие характеристики.

Их следует разделить на две группы.

Первая группа поведенческих характеристик описывает действия, которые объект производит самостоятельно.

Для человека это будет, к примеру, дыхание, пищеварение, старение. Подобные действия называются методами.

Метод есть некоторое действие, производимое объектом.

Рассмотрим последний пример – старения человека. В результате будет изменяться свойство данного человека – возраст. Таким образом, свойства и методы зачастую бывают тесно связаны, и не всегда возможно четко их разделить.

Вторая группа поведенческих характеристик объекта более приближена к реальности. Как в «настоящем» мире, так и во «вселенной» программы объекты не существуют отдельно, они всегда взаимодействуют друг с другом.

Реакция объекта на внешнее воздействие называется обработкой события.

Событие есть действие, производимое на данный объект каким-то внешним объектом. Обработка события есть реакция объекта на событие.

Как видно, методы и события схожи. Можно сказать так, что методы направлены вовне объекта, результатом метода будет «раздражение» другого объекта. А событие направлено извне объекта внутрь его и обрабатывается как реакция на внешнее действие.

С уровня абстракций перейдем к понятиям VBA.

Синтаксис объектов. Объектная модель

Рассмотрим синтаксис описанных понятий.

Объект в коде VBA обозначается именем.

Имя является уникальным идентификатором объекта (в рамках проекта, то есть не запрещено в других проектах иметь объекты с такими же именами).

Правила именования объектов такие же, как и при именовании процедур, рассмотренные выше.

Свойства и методы объектов обозначаются так:

<объект>.<свойство(метод)>

То есть имя объекта отделяется точкой от имени свойства или метода.

Синтаксис событий мы опишем потом.

Как мы уже разобрали, свойства описывают некоторые статические атрибуты объекта. Свойства, таким образом, могут иметь тип. У объекта-человека свойство возраст имеет тип целого числа («Сколько лет?»), хотя может также выражаться и дробным числом. Свойство цвет_волос имеет тип цвета. А свойство пол может принимать одно значение из предопределенного списка, который можно назвать вид_пола. Тогда свойство пол будет иметь тип вид_пола. А свойство профессия – тип вид_профессии.

А теперь определим тип свойства супруг. Очевидно, что тип этого свойства – человек.

У свойства личный_транспорт может быть тип автомобиль, велосипед и др. Свойство жилище может иметь типы квартира, дом (и др.).

Таким образом, типом свойства может быть другой объект. И описать, предположим, цвет волос жены некоего Николая можно так:

Николай.жена.цвет_волос

Подобные конструкции часты в программах VBA.

Предположим, что этот Николай – работник некоего Учреждения. Тогда получим:

Учреждение.Николай.жена.цвет_волос

Объекты могут образовывать иерархию соответственно тому, свойствами каких объектов они являются. Подобная иерархия называется объектной моделью.

В рассмотренной нами ранее трехчленной схеме строения языка (синтаксис-лексика-средства) объектная модель соответствует лексике языка, его словарному запасу.

Все приложения MS Office имеют собственные объектные модели. Так, существуют объектные модели Word, Excel, PowerPoint и др. Есть объектная модель MS Office как интегратора приложений.

Получение информации об объектной модели

Для работы с VBA необходимо иметь представление об объектной модели приложения, с которым предполагается работать.

Информацию о структуре объектной модели вы можете получить из нескольких источников.

Во-первых, разнообразная литература учебного и справочного характера. Преимущество – «бумажная» книга, которую можно изучать не только на мониторе компьютера, но и в более удобных условиях. Недостаток – принципиальная невозможность всестороннего охвата материала по причине большого объема.

Во-вторых, информацию вы можете получить из справочной системы VBA. Ее можно вызвать из среды IDE VBA совершенно аналогично вызову справки Word.

Попробуйте вызвать справку VBA.

  • Запустите Word (если он еще не запущен).
  • Вызовите IDE VBA (способ описан ранее, вспомните пройденный материал).
  • Нажмите [F1].

Если попытка закончилась неудачей – скорее всего, при установке MS Office справка по VBA не была установлена. При установке «по умолчанию» справка VBA не устанавливается. В таком случае следует заново запустить установку MS Office и «доустановить» справку VBA. Если вы не справляетесь с этой задачей – обратитесь к специалисту, обслуживающему ваш компьютер.

Преимущество этого способа – практически полный охват материала. Недостаток: справка VBA написана по-английски, только в версии MS Office 97 справка частично русифицирована. Второй недостаток – недостаточная наглядность. Начинающему зачастую очень сложно отделить важное от второстепенного, понять различия между, на первый взгляд, похожими сущностями. Тем не менее, справка MS  Office остается основным источником информации, далее мы поработаем с ней.

В-третьих, много данных можно получить, используя компонент IDE VBA, называемый Object BrowserПросмотрщик объектов. С его помощью можно получить схему атрибутов объекта и понять принципы работы с ним даже при полном отсутствии справки. Далее мы познакомимся с ним ближе. Преимущество Object Browser – возможность получения информации о любых объектах, с которыми вообще способен работать VBA. Недостаток – специфичность и краткость этой информации, для понимания ее требуется определенный навык работы.

В-четвертых, источником информации могут служить данные Internet. Есть множество сайтов, как русскоязычных, так и иностранных, где вы можете получить информацию. Недостаток – как правило, рассматриваются какие-то конкретные вопросы программирования, информации для начинающих мало. Кроме того, бывает очень сложно найти ответ именно на тот вопрос, который в данный момент вас интересует…

Изучение объектной модели Word

Итак, перейдем к изучению объектной модели Word.

  • Запустите Word, если вы еще не сделали этого.
  • Откройте «стендовый» документ, если он еще не открыт.
  • Включите IDE VBA.
  • Поместите курсор (одиночным щелчком или при помощи клавиатуры) на слове Selection в первой строке кода, которая выглядит так:

Selection.Find.ClearFormatting

  • Нажмите [F1].

Перед вами – справка VBA, уже открыта страница с описанием выбранного термина. Это – довольно удобный способ поиска информации о словах языка.

Но мы хотим провести обзор Word в целом.

  • В левой части окна справки перейдите на вкладку Содержание, в ее верхнюю часть.

Вы увидите нечто, подобное этому:

  • Щелкните на строке Microsoft Word Objects (четвертая сверху на данном рисунке).

В правом, основном окне справки появится следующее:

Если одного щелчка оказалось недостаточно, сделайте двойной щелчок на пункте в левом списке. Способы работы со справочной системой могут слегка отличаться в зависимости от версии.

Это – схема объектной модели Word.

  • Попробуйте перемещать курсор мыши.

Над прямоугольниками с надписями он меняет форму. Это значит, что щелчок здесь перенесет вас в соответствующий раздел справки.

Возле некоторых прямоугольников справа находятся треугольнички-стрелки (как возле заголовка AutoCorrect на рисунке). Щелчок на стрелке откроет «продолжение» дерева объектной модели, не поместившееся на этой схеме.

Переходить обратно в предыдущий раздел справки проще всего так.

  • Щелкните (в правом окне справки, где-нибудь там, где нет ни текста, ни рисунков) правой кнопкой мыши.
  • В появившемся контекстном меню выберите пункт Назад – как правило, этот пункт вверху контекстного меню.

Также можно переходить при помощи кнопок вверху окна справки (кнопки со стрелками).

  • Вернемся к разделу, который появился в самом начале, при первом вызове справки.

Перед вами раздел:

Вверху заголовок, описывающий раздел. Здесь – Selection< Property, Свойство Selection (ранее мы рассматривали свойства и их роль в VBA).

Ниже подзаголовки: See AlsoСмотри Также, ExampleПример, Applies ToПрименяется С (чем-то). Щелчком на одном из этих заголовков вы можете перейти в соответствующий раздел.

  • Щелкните на подзаголовке See Also. Появится окно выбора:

Появление подобного диалога происходит, когда возможно несколько ответов на интересующий запрос.

Для перехода – выберите одиночным щелчком мыши строку и нажмите [Enter].

Для отмены выбора нажмите [Esc].

  • Уберите окно выбора, нажав [Esc].

Ниже в окне справки – собственно описание термина, для которого была выбрана справка. Как видите, в тексте также есть гиперссылки, обычно они другого цвета, чем основной текст справки, и, как правило, подчеркнуты. Щелчком на гиперссылке вы совершите переход в другой раздел.

  • Прочитайте раздел справки.

Как видите, мы перешли немного не туда. Данный раздел относится к свойству Selection, тогда как нас интересует соответствующий этому свойству объект.

Щелкните на гиперссылке Selection в тексте раздела.

Перед вами новая страница:

Перед вами – гораздо более пространный раздел, описывающий нужный нам объектSelection. Изменились подзаголовки раздела. Теперь, как видите, вы можете получить информацию о свойствах (Properties) и методах (Methods) данного объекта. Подзаголовок событий (Events) другого цвета – события объектом Selection не обрабатываются.

Ниже – прямоугольники-заголовки, с помощью которых вы можете переходить на «родственные» разделы. Как видите, появился заголовок Multiple ObjectsМножественные Объекты. В данном случае верхний заголовок обозначает, что объект Selection может содержаться в нескольких разных объектах объектной модели. Нижний заголовок Multiple Objects обозначает то, что сам объект Selection содержит несколько разных объектов. Щелчок на заголовке вызовет окно выбора.

Ниже следует описание объекта с примерами и гиперссылками на другие разделы.

Как видите, справка VBA объемная, содержит очень много информации. Для работы с ней, очевидно, требуются начальные знания английского языка.

Сложность в том, что отсутствует наглядность дерева объектной модели, что чрезвычайно затрудняет использование справки начинающими, которые не в состоянии выделить главное, то, что нужно на начальном этапе.

Поэтому мы должны сделать обзор объектной модели Word.

Обзор объектной модели Word

Объектная модель Word имеет «древовидную» структуру и состоит из множества объектов. Здесь рассматриваются лишь основные, и то – вкратце. Наша цель – научиться думать, а не бездумно заучивать перевод справки VBA.

Application

Основной (иначе – корневой) объект Word – Application (Приложение).

Объект Application представляет само приложение Word.

Зачастую, и, как правило, этот объект не указывается явно при написании кода, он подразумевается.

Объект Application сам по себе содержит немного такого, что могло бы нас заинтересовать. Обычно он используется как «диспетчер» для управления другими объектами. Также вы будете использовать объект Application для управления приложением из другого приложения. Например, макрос, написанный для Excel, может вызывать Word для каких-то действий по обработке текста.

Как видно в разделе справки Microsoft Word Objects, объект Application содержит множество других объектов. Легко запутаться в этом обширном дереве.

Основные объекты, интересные для начинающих программистов VBA – объекты Document и Selection.

Document

Объект Document (Документ) – один из основных объектов Word.

Он представляет собственно документ как совокупность текста, рисунков, таблиц и др.

Одновременно может быть открыто несколько документов. Тот, с которым происходит работа в данный момент (тот, где находится текстовый курсор, обычно выглядящий как мигающая вертикальная черточка) для удобства именуется ActiveDocumentАктивныйДокумент.

Набор из открытых в данный момент документов имеет в объектной модели Word собственное имя – Documents (Документы). Этот набор является самостоятельным объектом и иногда с ним приходится работать отдельно.

Вложенные объекты, интересующие нас, называются Paragraph и Range.

Paragraph

Объект Paragraph (Параграф, Абзац) представляет абзац текста.

Этот объект успешно применяется при форматировании текста. Если вы пользовались стилями, то уже работали с Paragraph, не подозревая об этом.

Набор из нескольких абзацев документа образует набор Paragraphs (Параграфы, Абзацы). Этот набор является самостоятельным объектом, иногда с ним работают отдельно.

Range

Как написано в справке VBA,

объект Range (Регион) представляет собою непрерывную область в документе

 – не более и не менее.

Масштаб объекта Range может быть самым разным. Он может представлять как целый документ, так и любую его часть, и даже быть пустым, не содержа ничего.

Область применения Range очень широка. С помощью этого объекта можно перемещаться по тексту, производить сложные изменения документа, преобразовывать списки, изменять внешний вид и многое другое.

Имеются наборы Range, используемые для упрощения работы

  • Sentences (Фразы, Выражения). Этот набор содержит все предложения текста.
  • Words (Слова). В этом наборе – все слова текста.
  • Characters (Символы, Знаки) – все символы текста (буквы, цифры, знаки препинания).
Selection

Объект Selection (Выделение, Выбранное).

Представляет собой выбранную (выделенную) область в окне документа.

Данный объект может быть выделенным участком текста, или быть «пустым», соответствуя положению текстового курсора. Отличие от Range – объект Range не обязательно выделен. Объект Selection чаще применяется при операциях с участием буфера обмена, при перемещениях в тексте и др. При записи макросов средствами Word (как мы сделали ранее) вы всегда будете встречать объект Selection.

Наборов, содержащих объект Selection, в Word нет.

Объект Selection, также как и объект Document, содержит объекты Paragraph и Range.

Схема объектной модели Word

Эту основную структуру объектной модели Word можно наглядно представить так:

Не забывайте, что это – очень упрощенное, схематическое отображение основных объектов. На самом деле объектная модель Word содержит гораздо большее количество отдельных объектов и наборов.

Разбор макроса

Наконец-то мы начинаем разбор созданного нами макроса.

Вернемся к созданному нами макросу.

  • Запустите, если нужно, Word.
  • Откройте «стендовый» документ.
  • Вызовите IDE VBA.

Перед вами – окно кода созданного макроса.

Мы уже разбирали структуру макроса, если надо – повторите материал.

Первая строка кода:

Selection.Find.ClearFormatting

Вспомните пройденный материал и разберитесь, что здесь написано.

В этой строке кода макрос обращается к атрибуту ClearFormatting свойства Find объекта Selection.

Попробуем интуитивно понять смысл этой строки.

Как видите, в этой строке нет знака равенства, то есть не происходит присвоения. А, как мы уже разбирали, у свойств объекта должны быть значения. То есть, если бы ClearFormatting  было свойством, то строка имела бы вид:

Selection.Find.ClearFormatting = <значение>

или

<значение> = Selection.Find.ClearFormatting

Можно сделать вывод, что ClearFormatting – не свойство. А раз так, то это – метод.

Манипуляция значениями свойств и других сущностей, которые могут иметь значения, происходит при помощи знака присваивания =.

Подобные конструкции интуитивно понятны и не требуют дополнительного разъяснения. Так, строку

икс = 35

можно описать «человеческим» языком так:

икс равен (значению) 35

Далее. ClearFormatting выступает атрибутом сущности Find. Как мы определили ранее, атрибуты-методы имеют только сущности-объекты.

Значит, Find есть объект.

Но, согласно имеющейся конструкции, этот объект является атрибутом объекта Selection.

Итак, строка

Selection.Find.ClearFormatting

означает, что происходит вызов метода ClearFormatting объекта Find, содержащегося в объекте Selection.

Объект Find, блок With

В сделанном раньше разборе объектной модели Word мы не останавливались на объекте Find. Давайте узнаем о нем больше.

Не следует досконально зазубривать описанное в этом разделе. Ваша задача – научиться получать нужную информацию как из справки VBA, так и интуитивно, исходя из строения кода.

  • Поместите курсор на слове Find (одинарным щелчком мыши).
  • Нажмите [F1].

Откроется справка по этому слову.

Как видите, данная справка относится к свойствуFind, которое представляет одноименный объект. Свойство не делает больше ничего полезного и нас не интересует.

  • Щелкните по гиперссылке Find (обычно гиперссылки подчеркнуты и выделены синим цветом) в тексте справки.

И вот перед нами справка, относящаяся к интересующему нас объектуFind.

Как видите, краткое описание вводит нас в курс дела.

Объект Find представляет критерии операции поиска (и замены).

Атрибуты этого объекта соответствуют элементам диалогового окна Найти и заменить. Иначе говоря, этого объект будет использоваться при настройке параметров поиска/замены и при проведении поиска/замены.

Давайте узнаем, что делает метод ClearFormatting.

  • Щелкните по гиперссылке Methods вверху страницы справки.
  • В появившемся диалоговом окне выберите строку с именем метода ClearFormatting и щелкните кнопку Показать (или нажмите [Enter]).
  • Прочитайте справку.

Метод ClearFormatting «сбрасывает» использовавшиеся раньше параметры поиска/замены.

Это следует делать для контроля над выполняемыми действиями. Действительно, макрос «не знает» и не может знать, что вы делали раньше, и, чтобы не было ошибок, следует приводить все к «стандартным» условиям, что и делается автоматически при записи макроса средствами VBA.

Итак, мы разобрались в смысле первой строки кода. Здесь происходит приведение условий поиска/замены к стандартным.

Перейдем к следующей строке кода.

Selection.Find.Style = ActiveDocument.Styles("примечание")

Конструкция Selection.Find должна быть вам понятна.

В этой строке присутствует знак равенства =. Как мы видели выше, это дает понять, что выражение Selection.Find.Style является свойством.

А вот выражение ActiveDocument.Styles("примечание") разберем подробнее.

Термин ActiveDocument мы встречали раньше при разборе объектной модели Word. Как помните, этот объект обозначает документ, активный в данный момент.

Этот объект содержит свойство (вспомните знак равенства) Styles. А в выражении слева от знака равенства есть слово Style. Итак, слева от знака равенства – Стиль в единственном числе, а справа – Стили, – во множественном.

При разборе объектной модели мы уже встречали подобные выражения.

Наборы объектов, как правило, носят имя объекта во множественном числе.

Итак, в этой строке кода свойству Style объекта Find  (объекта Selection) присваивается значение из набора стилей активного документа.

Как же производится поиск в наборе стилей? Здесь это очевидно. В скобках помещена строка с именем стиля. Вспомните, именно это имя мы присвоили стилю при его создании.

Опишем один из способов доступа к элементу набора.

<набор>(<имя_элемента>)

Этот способ удобен и быстр, недостаток его – не всегда заранее известно имя элемента.

Теперь подытожим значение этой строки кода.

Свойству Стиль (Style) объекта поиска/замены (Find) присваивается стиль примечание, содержащийся в наборе стилей активного документа.

В чем смысл данной строки?

Как помните, по условиям мы ищем участки текста, имеющие стиль примечание. В этой строке мы как раз и настраиваем будущий поиск, задавая стиль как условие.

Третья строка кода несет служебный характер.

With Selection.Find

Первым идет слово WithС (чем-то). Это – служебное слово языка VBA, предназначенное для сокращения кода. Данная строка сообщает языку, что далее работа будет идти с конструкцией Selection.Find – вплоть до появления строки End With. Немного ниже эта строка присутствует.

Но и первые две строки кода работают с конструкцией Selection.Find! Отчего же они не включены в конструкцию With? Это – «своеобразное» поведение средства автоматизации VBA. Далее мы приведем код к однообразному виду.

Четвертая строка кода:

.Text = ""

Если мысленно подставить перед точкой выражение из строки With, то получим полный вид:

Selection.Find.Text = ""

Конструкция With значительно сокращает код. Кроме того, происходит ускорение работы.

Дело в том, что VBA при каждом выполнении кода прочитывает и выполняет все слова по порядку. А здесь он «уже знает», с чем идет работа и экономит два слова. Кажется, немного. Но представьте, что эта строка выполнится хотя бы тысячу раз. Экономия в две тысячи слов уже заметна.

  • Итак, разберите строку самостоятельно.

Здесь продолжается задание условий поиска. А именно – мы будем искать строку с текстом (Text) “”.

Две кавычки, стоящие рядом, обозначают так называемую «пустую строку». Иначе говоря, если отсутствие числового значения обозначается как «0» – ноль, то отсутствие текстового значения выражается «пустой строкой».

Смысл этой строки в том, что не будет производиться поиск какого-то определенного текста. Так следует делать при поиске по форматированию текста, как в нашем случае – поиск по стилю, или – по шрифту, размеру и толщине букв и тому подобное.

Следующая строка:

.Replacement.Text = ""

Объект Replacement, как вы можете прочитать в справке, определяет условия замены.

Здесь определяется текст, который будет заменять найденный. Так как это не требуется, свойству Text присваивается пустая строка.

Далее – строка

.Forward = True

Как видите, свойству Forward (Вперед) присваивается значение True (Правда, Истина).

Значение True соответствует особому типу VBA – логическому типу.

Свойства этого типа могут принимать только два значения – True и False (Истина и Ложь).

Эту строку кода можно прочитать так: «Истинен поиск вперед». Или так – поиск производится вперед, в направлении от начала документа к концу.

Затем идет строка

.Wrap = wdFindContinue

Свойство Wrap (Поворачивать, Заворачивать) определяет поведение поиска при достижении конца документа.

Этому свойству присваивается необычное значение – wdFindContinue (ПоискПродолжать).

По сути, свойство Wrap имеет тип целого числа. Но для упрощения работы программиста VBA использует особый прием: некоторым постоянно применяющимся числовым значениям присваиваются имена. Это делает программу удобочитаемой.

  • Прочитайте справку по свойству Wrap.

Вы увидите описание значений этого свойства.

В данном случае при достижении конца документа поиск будет продолжаться с начала (пока не будет достигнуто положение начала поиска). Другие значения – wdFindAsk (ИскатьСпрашивать), заставляющее объект поиска задавать вопрос пользователю о продолжении поиска с начала документа и wdFindStop (ПоискОстановить), которое остановит поиск по достижении конца документа. Как указано в справке, вышесказанное верно при предварительном задании Forward = True, что мы видели в предыдущей строке кода.

Следующая строка

.Format = True

подтверждает поиск формата текста (стиль есть разновидность формата).

Последующие строки избыточны, в нашем конкретном случае не нужны.

.MatchCase = False

Свойство MatchCase заставляет искать слово, соблюдая его регистр (то есть положение заглавных и строчных букв). Здесь это условие отключено (свойство равно False). Но ведь раньше мы определились, что вообще не ищем текст! Эта строка бессмысленна. В дальнейшем мы исправим код.

.MatchWholeWord = False

Эта строка отключает поиск целого слова (в отличие от поиска части слова). В нашем макросе это действие не нужно.

.MatchWildcards = False

Отключается поиск согласно знакам подстановки. Строка бессмысленна.

.MatchSoundsLike = False
.MatchAllWordForms = False

Эти строки отключают поиск слов, схожих по звучанию с заданным, и поиск всех словоформ. Во-первых, нам это не нужно, во-вторых, Word русской версии эти операции вообще не производит (или производит не вполне корректно).

На этом завершается блок With.

Строка

Selection.Find.Execute

обращается к методу ExecuteВыполнить.

Здесь производится собственно поиск согласно сделанным настройкам. Обратите внимание, что и эта строка могла бы быть включена в блок With.

Найденный в результате поиска блок будет выделен. То есть – объект Selection изменится.

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

Строка

Selection.Cut

вызывает метод CutВырезать.

Этот метод действует аналогично команде меню Word ПравкаВырезать.

При выполнении метода Cut выделенный ранее участок переносится в буфер обмена Windows и удаляется из текста.

Следующую строку разберем подробнее.

Selection.MoveLeft Unit:=wdCharacter, Count:=1

  • Вызвав справку по слову MoveLeft (один раз щелкнуть на слове в окне кода и нажать [F1]), мы увидим, что MoveLeft (ДвигатьсяВлево) – метод.

Давайте воспользуемся возможностями IDE VBA для получения дополнительных сведений.

  • Поместите курсор в окне кода сразу за словом MoveLeft и введите символ “ (“ (открывающая скобка).

Появится подсказка:

Как видите, в появившейся «полосочке» – название метода, открывающая скобка (такая, как мы только что ввели), а затем – какие-то слова.

По ближайшему рассмотрению мы замечаем слово Unit – жирным, в квадратных скобках. А в тексте – также слово Unit. Далее в подсказке слово Count, в тексте оно также есть. А вот третьего слова из подсказки – Extend – в тексте нет.

Очевидно, что жирным шрифтом в подсказке выделено слово, введение которого ожидается IDE в данном месте.

Но для чего скобки и дополнительные слова в вызове метода – сейчас разберем.

Лишь самые простые методы вызываются как есть. Как правило, при вызове метода должно быть некоторое уточнение.

Вспомните реальную жизнь. Если вам прикажут, предположим, «Читай!», то вы начнете размышлять, что требуется читать. Либо перед вами лежит открытая книга, и приказ относится к ней – подобная ситуация настроек по умолчанию была раньше с объектом Selection.Find. Либо необходимо требуется уточнение – что читать.

Подобное уточнение при вызове метода называется параметром метода.

Значение параметра – аргумент.

В этой строке у метода MoveLeft есть параметр Count, но аргумент 1.

Вернемся к примеру с чтением. У действия «читать» возможны дополнительные указания – например, «вслух-про_себя» «громко-тихо», «быстро-медленно» и др. Но эти условия часто могут быть пропущены без ущерба для выполняемого действия.

Таким образом, у методов бывают необязательные параметры, при вызове методов их можно опускать.

Синтаксис вызова метода с параметрами таков:

<метод> <аргумент1>, <аргумент2>...

То есть аргументы следуют за методом по порядку, разделенные запятыми.

Если же метод предоставляет значение для присвоения свойству, то синтаксис немного изменится:

<свойство> = <метод> (<аргумент1>, <аргумент2>...)

Добавлены скобки, охватывающие список параметров. Подобное изменение синтаксиса относится и ко всем случаям, рассмотренным ниже.

Если у метода есть необязательные параметры – именно их необязательность обозначена квадратными скобками на подсказке IDE VBA (смотри на картинке выше), то необязательные параметры могут быть пропущены. Здесь возможны два синтаксиса (Не забудьте, это относится только к необязательным параметрам!).

Во-первых, аргументы можно по-прежнему размещать в своем порядке, оставляя «свободное место» пропущенным. Например, у метода есть три параметра, при вызове мы пропускаем второй:

<метод> <аргумент1>,, <аргумент3>

Как видите, запятая есть, а аргумента – нет.

Если пропущен первый аргумент, будет так:

<метод> ,<аргумент2>, <аргумент3>

Но если пропущен последний аргумент, этого не требуется, делаем вид, что так и надо:

<метод> <аргумент1>

Здесь пропущены второй и третий аргументы.

<метод> <аргумент1>, <аргумент2>

А здесь – третий.

Во-вторых, можно явно указывать имя параметра и аргумент. В этом случае их даже можно менять местами – если вам это удобно. Синтаксис будет такой:

<метод> <параметр1>:=<аргумент1>, <параметрM>:=<аргументM>, <параметрN>:=<аргументN>...

В этом случае не надо «резервировать» запятые для пропущенных аргументов, запись более наглядна.

Но – написание кода займет гораздо больше времени, его объем увеличится, а, по некоторым непроверенным данным – уменьшится скорость выполнения программы. Так что способ записи выбирайте сами!

Вернемся к нашему коду.

  • Удалите введенную только что скобку после слова MoveLeft.

Итак, исходя из справки – и из подсказки в коде, – метод MoveLeft (ДвигатьсяВлево) перемещает выделение в тексте влево и  имеет три параметра:

  • Unit (Единица) – показывает, что считается единицей перемещения. Если значение не передается, метод перемещает выделение «символами».
  • Count (Счет) – на сколько unit-ов перемещаемся. Если аргумент пропущен – на 1.
  • Extend (Расширять) – определяет, «раздвигаем» ли мы выделение влево или же перемещаем. Если аргумента нет – перемещаем.

Все три параметра – необязательны, что мы видели еще на подсказке IDE VBA, где все три параметра были заключены в квадратные скобки.

Итак, в этой строке кода макроса происходит перемещение выделения (читай – текстового курсора) влево на один (Count:=1) символ (Unit:=wdCharacter), что соответствует перемещению текстового курсора клавишей [] при записи макроса.

Набор Footnotes, метод Add

Перейдем к следующей строке:

ActiveDocument.Footnotes.Add Range :=Selection.Range, Reference:=""

Здесь мы работаем уже с другим объектом – ActiveDocument. Как помните, это – обозначение документа, активного в данный момент (помните, в начале работы вам советовали закрыть все посторонние документы Word? Именно для того, чтобы не было проблем с подобными участками кода).

Вспоминаем интуитивный разбор, проводившийся нами ранее.

У объекта ActiveDocument есть как свойство набор Footnotes (набор – потому что во множественном числе), а у этого набора – метод Add (синтаксис очень схож с предыдущей строкой кода, здесь используются необязательные параметры).

Объект Footnote, содержащийся в этом наборе, представляет собою сноску внизу страницы (в отличие от Endnote – сноски в конце текста).

Документ имеет набор сносок.

Метод Add (Добавить) характерен для наборов VBA. Его действие, как следует из названия – добавление нового элемента в набор.

  • Введите открывающую скобку после слова Add и ознакомьтесь со списком параметров метода:

Как видите, первый параметр Range обязателен – он не помещен в квадратные скобки, два других – необязательны.

Названия параметров в данном случае не так показательны, как в предыдущей строке кода. Обратимся к справке.

  • Поместите текстовый курсор (одиночным щелчком) на слове Add и нажмите [F1].

На странице справки вы видите большой список объектов, к которым применим метод Add.

  • Найдите строку со словом Footnotes:

  • Щелкните на гиперссылке Footnotes для перехода на интересующую нас страницу. Читаем справку.

Как видите, параметр Range указывает место расположения будущей сноски.

В нашем коде аргументом является Selection.Range, иными словами – текущее положение текстового курсора.

Заметьте, что, согласно справке, аргументом должен выступать пустой регион – в результате действия предыдущей строки кода объект Selection.Range как раз и стал «пустым», соответствующим текстовому курсору.

Под «пустым» подразумевается регион, не имеющий содержимого. Текстовый курсор можно рассматривать как регион, у которого совпадают начало и конец – а, значит, содержимого у него нет.

Следующий параметр Reference (Ссылка) определяет знак, используемый для сноски.

Если аргумент опущен – или, как в данном случае, равен пустой строке, то сноски будут нумероваться.

В следующем параметре Text вы можете сразу задать текст сноски.

Но в данном макросе это делать неудобно, текст мы разместим чуть позже.

Если вы заметили, наборы VBA имеют довольно серьезный недостаток. А именно, элемент набора Footnotes не имеет идентификатора. Нет простого способа обратиться, предположим, к сноске с определенным текстом, даже если мы его задали при создании сноски, вам придется «пролистывать» весь набор в поисках требуемого. Кроме того, при добавлении элемента набора ему присваивается некоторый индекс – порядковый номер. Но вы не знаете, какой индекс будет у данной конкретной сноски, а после удаления или добавления сноски в тексте индексация может измениться.

Подобными недостатками страдают все наборы VBA. Вам придется принимать это как данность, простого способа справиться с ситуацией, к сожалению, нет.

В следующей строке

Selection.Paste

происходит вставка содержимого буфера обмена в место нахождения текстового курсора – при создании сноски в предыдущей строке кода текстовый курсор самостоятельно переходит в нужное место.

Эта строка аналогична выполнению команды меню Word ПравкаВставить.

Следующая строка

ActiveWindow.Panes(1).Activate

возникнет только в том случае, если вы правильно выполняли указания по созданию макроса и выполнили перед записью команду ВидОбычный.

Если вы забыли это сделать – не огорчайтесь, в конце концов, вы можете записать макрос заново.

В этой строке мы встречаем объект ActiveWindowАктивноеОкно. По аналогии с ActiveDocument можно догадаться, что это – обозначение текущего окна Word.

Этот объект, оказывается, может иметь набор PanesПанели. Здесь идет работа с панелью номер 1.

В коде происходит вызов метода ActivateАктивировать.

Если помните, при записи макроса после размещения текста в сноске мы производили одиночный щелчок мышью в основном тексте для перемещения курсора. Именно это действие имитируется данной строкой кода. Если это не будет сделано, дальнейшая работа будет происходить с текстом сноски, а не основным текстом.

Если бы документ при записи макроса находился в режиме разметки, как часто бывает (выполните команду меню Word ВидРазметка страницы чтобы понять, что имеется в виду), панель сносок не была бы открыта, и щелчок мыши не перенес бы курсор в текст. Продолжение работы макроса было бы невозможно.

Итак, мы вместе разобрали результат автоматической записи макроса. Как видите, простота и наглядность этого способа сочетаются с определенными ограничениями при записи – приходится соблюдать дополнительные условия, и код иногда получается избыточен, как в нашем случае при настройке параметров поиска. Кроме того, автоматическая запись не дает возможности «зациклить» выполнение для прохождения всего документа.

Поэтому настоятельно рекомендуется корректировка макроса вручную, чем мы и займемся в течение следующего занятия.

Итог занятия

Как видите, это занятие было в основном теоретическим, как такового исправления макроса мы не делали. Тем не менее, вы получили много полезной информации.

Материал занятия следует законспектировать. Лучше всего, если вы сделаете это, не заглядывая в книгу, для чего мы приведем краткий план будущего конспекта.

  • Программа, понятие, виды программ.
  • Языки программирования, понятие, разновидности.
  • Язык Basic, его отличительные особенности. Диалекты Basic – VB, VBA.
  • Составляющие изучения языка, их характеристики.
  • Понятие IDE.
  • Процедура (подпрограмма), понятие, синтаксис.
  • Объект, понятие.
  • Имя объекта. Правила именования в языке VBA.
  • Атрибуты объекта, их разновидности.
  • Синтаксис свойств и методов.
  • Понятие объектной модели.
  • Наборы, понятие, синтаксис доступа.
  • Параметры, аргументы, синтаксис. Необязательные параметры, синтаксис.
  • Конструкция With, ее смысл, синтаксис.

Довольно. Остальное вы можете узнать из справки VBA.

Не нужно зазубривать! Материал следует передавать своими словами.

Лучший способ проверить усвоение материала – попробовать объяснить его кому-нибудь другому. При возможности сделайте это.

Hosted by uCoz