ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.06.2025
Просмотров: 1422
Скачиваний: 3
сначала открыть модуль, содержащий этот макрос.
Задание 1. Откройте модуль в Excel, содержащий макрос
FormatArialBoldl2.
Для этого:
üнажмите Alt+F11, чтобы активизировать Редактор VB, если он еще не
открыт;
üвыберите команду View/Project Explorer (Вид/Окно проекта), чтобы отобразить Project Explorer;
üпросмотрите дерево-список в Project Explorer, чтобы найти модуль, который вам необходимо отобразить. Если опция просмотра папок в Project Explorer включена, вы найдете все модули проекта в папке Modules вашего проекта;
üдважды щелкните на модуле, который вам необходим; Редактор VB отображает этот модуль в Code Window (Окно программы).
После того как вы отобразите модуль, можете использовать список Procedure (Процедура) в Code Window для получения определенного макроса в этом модуле.
Замечание 1. Когда вы записывали макрос FormatArialBoldl2 в Excel 2003 во время изучения первой части, вы сохранили его в рабочей книге Personal.xls. Если это был первый макрос, какой вы когда-либо записали и сохранили в Personal.xls, Excel сохранил макрос FormatArialBoldl2 в модульном листе с именем Module1. Если бы вы затем записали другой макрос в том же самом сеансе работы, Excel также сохранил бы его в том же самом модуле (Module1). Если вы выходили из Excel между временем записи вами макроса FormatArialBoldl2 и временем записи другого макроса, Excel сохранил последний макрос в другом модуле (скорее всего, в Module2).
Использование инструмента Object Browser
Вместо поиска по всему тексту во всех модулях определенного макроса вы можете использовать инструмент, называемый Object Browser, чтобы найти этот макрос, вывести на экран или редактировать в Excel.
Задание 2. Найдите макрос FormatArialBoldl2 в Excel с помощью Object Browser.
Для этого:
üнажмите Alt+F11, чтобы открыть Редактор VB
üвыберите View/Project Explorer (Вид/Окно проекта) для отображения
Project Explorer;
üв Project Explorer выделите проект VBA VBAProject (PERSONAL.XLS), в
котором вам необходимо найти макрос FormatArialBoldl2;
üвыберите команду View/Object Browser (Вид/Просмотр объектов).
Редактор VB отобразит диалоговое окно Object Browser (рис. 5);
üубедитесь, что в раскрывающемся списке Project/Library
(Проект/Библиотека) выделен элемент <AII Libraries> (<Все библиотеки>). Окно
21
Object Browser отображает все имеющиеся модули и объекты в списке Classes
(Классы);
Project/Library
Search Text
Search
Рис. 5
üвведите имя макроса FormatArialBoldl2, который вам необходимо найти,
вполе Search Text (Образец поиска);
Рис. 6
22
ü щелкните на кнопке Search (Поиск) в окне Object Browser. Object Browser выполняет поиск текста, который вы ввели в окно Search Text, в вашем проекте VBA (а также в других открытых в данный момент библиотеках);
После выполнения поиска меняется вид окна Object Browser: оно отображает список Search Results (рис. 6). Если Object Browser обнаружил макросы, совпадающие с текстом в окне Search Text (Образец поиска), они отображаются в списке Search Results (Результаты поиска). В противном случае,
вэтом списке отображается сообщение No items found (Элементы не найдены).
üЩелкните на макросе в списке Search Results, затем – на кнопке View Definition (Описания) в окне Object Browser. Редактор VB открывает Code Window
(Программы) для модуля, содержащего этот макрос, и отображает исходный код макроса (листинг 1).
Листинг 1 – Текст макроса FormatArialBold12
1Sub FormatArialBold12()
2'
3' FormatArialBold12 Макрос
4' Макрос записан 12.11.2007 (Titov) Форматирует текст диапазона: Arial, Bold, 12
5'
6
7'
8With Selection.Font
9.Name = "Arial"
10.FontStyle = "полужирный"
11.Size = 12
12.Strikethrough = False
13.Superscript = False
14.Subscript = False
15.OutlineFont = False
16.Shadow = False
17.Underline = xlUnderlineStyleNone
18.ColorIndex = xlAutomatic
19End With
20End Sub
Замечание 2. Исходный код макроса в реальных модулях не включает номер каждой строки; в этом учебно-методическом пособии во всех листингах приведены номера строк, чтобы было легче обозначать и обсуждать отдельные строки в различных листингах-примерах.
Если ваш проект не содержит большого количества различных модулей, то легче находить макрос, выполняя следующую альтернативную процедуру:
üнажмите Alt+F11, чтобы открыть Редактор VB;
üвыберите View/Project Explorer (Вид/Окно проекта), чтобы отобразить
Project Explorer;
üв Project Explorer выделите проект VBA, в котором вам необходимо
23
найти макрос;
üвыберите команду View/Object Browser (Вид/Просмотр объектов).
Редактор VB отображает диалоговое окно Object Browser;
üвыделите имя вашего проекта в раскрывающемся списке Project/Library окна Object Browser. Если только вы не изменили имени вашего проекта, он называется VBAProject в Excel;
üвыделите модуль в списке Classes (Классы). Окно Object Browser отображает теперь все макросы в выделенном модуле в списке Members of <object> (Компонент <объект>). Точный заголовок этого списка изменяется в зависимости от объекта, выделенного в списке Classes;
üвыделите макрос, исходный код которого вам необходимо увидеть, в
списке Members of
üщелкните на кнопке View Definition (Описания) в окне Object Browser.
Редактор VB открывает Code Window для модуля, содержащего этот макрос, и отображает исходный код макроса.
Если вы рассмотрите несколько записанных макросов, то заметите, что все они имеют общие элементы. Листинг 1 показывает исходный код для макроса FormatArialBoldl2 в Excel, который вы записали при изучении части 1. В листинге 1 строка 1 является началом записанного макроса. Каждый макрос VBA начинается с ключевого слова Sub, за которым следует имя макроса. Строку, содержащую ключевое слово Sub и имя макроса, называют строкой объявления (declaration) макроса. За именем макроса всегда следуют пустые круглые скобки.
Строки 2–7 являются комментариями. Комментарий (comment) – это строка
вмакросе VBA, которая, действительно, не содержит инструкции, являющиеся частью этого макроса. Для VBA любой текст, который следует за апострофом (ключевым словом Rem), представляет собой комментарий, начинающийся с апострофа и заканчивающийся в конце этой строки. Записанный макрос всегда начинается со строк комментариев, формулирующих имя макроса и содержащих текст, который вы ввели в текстовое окно Description (Описание) диалогового окна Record Macro (Запись макроса) в момент записи этого макроса. Конкретное
количество и содержимое строк комментариев в записанном макросе зависит от длины вводимого вами описания.
Сразу за объявлением макроса следует тело (body) макроса (которое может включать или не включать строки комментариев). В листинге 1 строки 8-19 составляют тело макроса FormatArialBodyl2. Каждая строка в теле макроса состоит из одного или более операторов VBA. Оператор (statement) VBA – это последовательность ключевых слов и других символов, которые вместе составляют одну полную инструкцию для VBA. Макрос VBA состоит из одного или нескольких операторов. Операторы VBA в записанном макросе содержат инструкции, соответствующие действиям, которые вы выполняли, когда записывали этот макрос. Например, строка 9 в листинге 1 устанавливает шрифт Arial, – строка 10 – размер шрифта и так далее.
За телом макроса следует строка, содержащая ключевые слова End Sub, которые сообщают VBA о том, что достигнут конец макроса. Макрос в листинге 1 заканчивается в строке 20.
24
Когда вы запускаете макрос, VBA начинает выполнение кода с первой строки в теле этого макроса (первая строка после объявления макроса) и выполняет инструкции в этой строке последовательно слева направо. Затем VBA переходит к следующей строке и выполняет инструкции в ней и так далее, пока он не достигнет конца макроса, обозначенного оператором End Sub. VBA игнорирует любые строки комментариев, которые могут появиться в теле макроса.
Как вы могли уже заметить, многие строки в записанном макросе имеют отступ от левого края. Каждый уровень отступа помогает отделять одну часть макроса от другой. Заметьте, что все тело каждого макроса смещено вправо между ключевыми словами Sub…End Sub для наглядного выделения тела макроса. В других местах (в строках 9–18 в листинге 1) операторы расположены с еще большим отступом. Этот второй, больший уровень отступа помогает определить все операторы, заключенные между ключевыми словами With…End With. В следующих частях оператор With…End With будет рассмотрен подробнее.
Макрорекордер при создании макроса автоматически делает отступы в коде, чтобы пользователю было легче читать записанный макрос. Когда вы будете писать собственные макросы, следует всегда делать отступы в коде для выделения различных логических разделов. Отступы строк – это просто традиция, поддерживаемая программистами для лучшего восприятия текста.
Когда вы будете просматривать записанный макрос на экране (используя Редактор VB), то заметите, что различные части текста макроса отображаются различными цветами. Комментарии отображаются зеленым цветом, тогда как Sub, End Sub и другие ключевые слова VBA – синим. Остальной текст в макросе отображается черным цветом для указания на то, что он содержит данные и программные операторы, созданные пользователем. VBA выполняет цветовое кодирование текста на экране, чтобы можно было легко определить, какую часть макроса или оператор вы просматриваете.
При редактировании кода макроса в модуле вы можете использовать команды и методы, известные вам как пользователю Windows, Word или Excel.
Для сохранения изменений, которые вы вносите в модуль, используйте команду File/Save (Файл/Сохранить) Редактора VB или щелкайте на кнопке Save (Сохранить) на панели инструментов. Любые изменения, которые вы выполняете в модуле, также сохраняются всякий раз, когда вы сохраняете файл рабочей книги, содержащий этот модуль. (Excel выдает запрос на сохранение любых изменений, выполненных в Personal.xls, при выходе.)
Задание 3. Добавьте в макрос FormatArialBoldl2 символ продолжения строки.
Для этого:
üпереместите курсор вставки в строку 10 за знак =;
üнапечатайте один пробел и символ подчеркивания ( _ ) и нажмите клавишу Enter;
üвыполните макрос FormatArialBoldl2.
Замечание 3. Символу подчеркивания предшествует пробел, отделяя его от
25
другого текста в строке. Эта особая комбинация символа пробела, за которым следует символ подчеркивания в конце строки, называется символом продолжения строки (line-continuation character) и сообщает VBA о том, что
следующая строка макроса должна быть присоединена к текущей строке для образования единого оператора. Операторы, разделенные (уместнее было бы говорить «объединенные») символом продолжения строки, размещаются с еще большим отступом, чтобы их было легче обнаружить при чтении кода.
Перемещение или копирование макроса из одного модуля в другой
Для копирования одного макроса используйте Clipboard, выполняя следующие шаги:
üотобразите макрос, который вам необходимо копировать;
üвыделите весь текст исходного кода макроса. Убедитесь, что вы выделили весь макрос, включая строки Sub, End Sub и все строки между ними;
üвыберите команду Edit/Сору (Правка/Копировать) для копирования текста макроса в Clipboard;
üотобразите модуль, в который вам необходимо копировать этот макрос;
üвыберите команду Edit/Paste (Правка/Вставить) для вставки текста макроса в модуль.
Упражнение 1
Создайте произвольный макрос, не содержащийся в Module1, и переместите его в Module1.
Замечание 4. Вы можете пользоваться описанным выше методом для копирования макроса в тот же модуль, в другой модуль одного и того же проекта или в модуль другого проекта. Можно также использовать этот метод для вставки текста макроса в другие приложения Windows.
Сохранение и перенос модулей как текстовых файлов
Если вам необходимо сделать резервную копию всего модуля, вы можете сохранить его как текстовый файл. Сохранение целого модуля как текстового файла полезно, если вы хотите импортировать модуль в другой проект VBA, создать архивные копии вашей. Такое сохранение модуля называется экспортированием модуля. После того как вы экспортируете модуль, вы можете импортировать его в любой проект VBA или Visual Basic.
Для экспортирования модуля как текстового файла выполните следующее:
üвыделите в Project Explorer модуль, который хотите экспортировать;
üвыберите команду File/Export File (Файл/Экспорт файла). Редактор VB отображает диалоговое окно Export File (Экспорт файла) (рис. 7);
üв списке Папка (Save In) выберете диск и папку, в которой вы хотите сохранить текстовый файл;
üвведите имя экспортируемого файла в текстовое окно Имя файла (File Name). Редактор VB вводит имя модуля по умолчанию;
üубедитесь, что в списке Тип файла (Save as type) выделен пункт Basic Files (*.bas). Расширение *.bas определяет этот файл как файл исходного кода VBA или Visual Basic. Информация, сохраняемая в этом файле, – это читаемый
26