Опубликован: 25.03.2009 | Уровень: для всех | Доступ: свободно | ВУЗ: Институт управления, бизнеса и права
Лекция 2:

Начинаем программировать

< Лекция 1 || Лекция 2: 12 || Лекция 3 >
Аннотация: Эта лекция посвящена началам программирования на VBA. Здесь будут рассмотрена вкладка Разработчик, дающая доступ к возможностям VBA из приложений MS Office 2007, основы объектно-ориентированного программирования и объектных моделей приложений MS Office. Также в этой лекции будут рассмотрены вопросы совместного использования Office 2007 и более старых версий Office, не поддерживающих новые форматы файлов без установки дополнительного ПО.

2.1. Редактор Visual Basic

02-01-Ввод текста.docm - пример к п.2.1.

2.1.1. Задание

Записать в Microsoft Word макрос, который автоматически вводит в позицию курсора слово "Привет". Отредактировать макрос вручную таким образом, чтобы он выводил "До свидания".

2.1.2. Решение

Начнем запись макроса (Назовем его "Privet"), введем с клавиатуры слово "Привет", после чего остановим запись.

Откроем окно Макросы нажатием соответствующей кнопки на панели Вид, выберем наш макрос и нажмем на кнопку Изменить. Перед нами откроется окно редактора Visual Basic с открытым в нем макросом (рис. 2.1.)

Окно редактора Visual Basic

увеличить изображение
Рис. 2.1. Окно редактора Visual Basic

Окно редактора включает в себя несколько рабочих областей - окон, служащих для выполнения различных действий. На рис. 2.1. в окне редактора присутствуют три рабочих области:

Code (Код) - это окно, в котором пишут тексты VBA-программ и редактируют макросы. Эта область расположена справа и занимает большую часть окна редактора.

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

Properties (Свойства) - отображает свойства выделенного объекта. Обычно располагается в левой нижней части рабочего окна.

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

UserForm (Форма) - служит для редактирования пользовательской формы в визуальном режиме.

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

Object Browser (Обозреватель объектов) - служит для просмотра информации об объектах, доступных в данном приложении.

Watch, Locals, Immediate - окна, средства которых используются при отладке приложений.

Давайте изучим содержимое окна Code. Посмотрите на первую и последнюю строчку текста. Первая строчка выглядит так:

Sub Privet ()

Это - начало процедуры макроса. Процедура - это самостоятельный участок кода. Если хотите, можете считать процедуру отдельной программой. Думаю, вам знакомо название процедуры макроса - ведь мы сами дали ему это имя при записи.

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

End Sub

Получается, что все наши действия в ходе записи макроса описаны командами, находящимися между Sub и End Sub. А что же там находится?

Сразу после первой строки макроса можно увидеть несколько строчек, начинающихся со значка ' (апостроф). Он указывает на то, что текст данной строки - это комментарий. Комментарии в текстах VBA-программ автоматически выделяются зеленым цветом. В нашем случае комментарии содержат информацию об имени макроса и тот текст, который мы вводили в качестве комментария к макросу.

Дальше начинается самое интересное - код, который автоматизирует ввод текста. В нашем случае полезная часть макроса состоит всего из одной строчки. Вот она:

Selection.TypeText Text:="Привет"

Давайте попытаемся "перевести" текст этой программной строки на русский язык, учитывая, что Selection переводится как "выделение", Type - "печатать", Text - текст. Получается, что этой строкой мы даем компьютеру такую команду: "Напечатать в выделенной позиции текст "Привет"".

Как вы думаете, что нужно сделать с этой строчкой, чтобы программа вместо "Привет" вывела бы "До свидания"? Наверняка вы уже догадались, что для этого нужно лишь заменить текст, который расположен в кавычках.

В результате у нас получилась такая строка:

Selection.TypeText Text:="До свидания"
Многие начинающие программисты не придают значения точкам, запятым, скобкам и кавычкам, которые попадаются им в программе. Обычно это приводит к массе ошибок, которые вызывают у новичка недоумение. Поэтому будьте предельно внимательны, редактируя тексты программ.

Отредактируйте текст программы, закройте окно редактора (или, не закрывая его, перейдите в окно документа), и, установив курсор в желаемое место вставки текста, выполните макрос.

Примите мои поздравления. Первое знакомство с редактором Visual Basic и с языком VBA состоялось. Ваш первый вручную отредактированный макрос работает. Но сейчас у вас гораздо больше вопросов, чем ответов.

2.2. Использование вкладки Разработчик

В приложениях Microsoft Office предусмотрена специальная вкладка - Разработчик. Она служит для работы с VBA-программами, элементами управления, которые можно добавлять в документ и т.д. По умолчанию эта вкладка скрыта. Чтобы отобразить ее, например, в Microsoft Word, нажмите кнопку Microsoft Office (в левом верхнем углу окна программы), в появившемся окне нажмите на кнопку Параметры Word, после чего в окне Параметры Word установите галочку в поле Показывать вкладку Разработчик на ленте. Вот как выглядит эта вкладка (рис. 2.2.).

Вкладка Разработчик на ленте Microsoft Word

увеличить изображение
Рис. 2.2. Вкладка Разработчик на ленте Microsoft Word

Обратите внимание на кнопку Visual Basic - она расположена в области Код. Нажав на эту кнопку, вы запустите редактор VBA. В области Элементы управления расположены миниатюры элементов управления, которые можно располагать в документах.

Если вы включите отображение вкладки Разработчик - в строке состояния редактора появится кнопка, с помощью которой можно быстро начать или остановить запись макроса.

В дальнейшем мы постоянно будем пользоваться элементом управления Кнопка для демонстрации различных возможностей VBA.

< Лекция 1 || Лекция 2: 12 || Лекция 3 >
Евгений Ушаков
Евгений Ушаков

Добрый день! Поясните, пожалуйста, 3000 р. стоит документ об окончании курса. Если он не нужен, то можно учиться бесплатно?

Александр Новиков
Александр Новиков

Добрый день! Очень нужен справочник по объектам VBA c описание их методов и свойств.

Кто-нибудь знает, где можно приобрести?

(Он конечно есть в VBA - Object browser, но не очень удобный)