ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.06.2025
Просмотров: 1426
Скачиваний: 3
текст;
ü щелкните на кнопке Сохранить (Save), чтобы экспортировать файл. Редактор VB экспортирует выделенный модуль и закрывает диалоговое окно
Export File.
Рис. 7
Упражнение 2
Экспортируйте Module1 в Excel.
Замечание 5. Когда вы экспортируете модуль, Редактор VB создает файл читаемого текста, содержащий все макросы в этом модуле. Если необходимо, вы можете просматривать или редактировать файлы *.bas, созданные Редактором VB, с помощью Блокнот или Visual Basic. Обратите внимание на то, что текст в файле *.bas, отображенный приложением Блокнот, содержит строки, начинающиеся со слова Attribute и отсутствующие в модуле в Code. Редактор VB добавляет эти дополнительные строки к экспортированному файлу *.bas, поскольку они содержат информацию, которая потребуется VBA или Visual Basic, если вы в дальнейшем будете импортировать файл *.bas в другой проект.
Вы можете добавлять любой модуль, экспортированный вами как файл *.bas, в любой из проектов VBA. Модуль добавляется в проект импортированием текстового файла *.bas. Для того чтобы импортировать файл *.bas, выполните следующее:
üвыделите проект в Project Explorer, в который необходимо импортировать файл *.bas;
üвыберите команду File/Import File (Файл/Импорт файла). Редактор VB отображает диалоговое окно Import File (Импорт Файла) рис. 8;
üв списке Папка (Look In) выберете диск и папку, в которой содержится файл, который вам необходимо импортировать в ваш проект. Это должен быть файл, который вы создали, используя Редактор VB для экспортирования модуля;
üубедитесь, что в списке Тип файлов (Files Of Type) выделен пункт VB Files (*.frm, *.bas, *.cls);
üщелкните мышью дважды на имени файла, который вам необходимо
27
импортировать. Редактор VB читает файл и добавляет модуль в ваш проект. Если проект уже содержит модуль с тем же именем, что и модуль, импортируемый вами, Редактор VB добавляет число в конец имени модуля (1, 2, 3 и так далее) для создания уникального имени модуля.
Рис. 8
Упражнение 3
Импортируйте экспортируемый модуль из упражнения 2 в Excel.
Замечание 6. Команда Import File (Импорт Файла) позволяет добавлять в проект файлы форм (*.frm), программ (*.bas) и описания классов (*.cls). Файлы этих же форматов можно экспортировать с помощью команды Export File
(Экспорт файла).
Удаление модулей из проекта
Возможно, вы решите, что вам больше не нужны макросы, содержащиеся в определенном модуле. Вам может понадобиться удалить модуль из проекта, потому что макросы, которые он содержит, были заменены новыми версиями или потому, что этот модуль содержит экспериментальные макросы, не нужные вам более. Модуль можно удалить из проекта VBA, выполнив следующее:
üвыделите модуль, который хотите удалить из проекта, в Project Explorer Редактора VB;
üвыберите команду File/Remove <object>… (Файл/Удалить <объект>…).
Редактор VB отображает окно сообщения, запрашивающее у вас, хотите ли вы экспортировать модуль перед тем, как удалить его (рис. 9);
Рис. 9
ü щелкните на кнопке Да (Yes), если хотите экспортировать модуль перед
28
его удалением. Настоятельно рекомендуется экспортировать модуль как файл *.bas, если только вы не уверены абсолютно, что вам никогда не понадобятся макросы, содержащиеся в этом модуле. Иначе можно щелкнуть на кнопке Нет (No) для удаления модуля без его экспортирования;
ü если вы выберите экспортирование модуля перед его удалением, Редактор VB отображает диалоговое окно Export File, описанное ранее в этой части. Заполните диалоговое окно Export File, как было описано ранее, и щелкните на кнопке Сохранить.
В любом случае Редактор VB удаляет модуль из проекта.
Упражнение 4
Удалите модуль без сохранения созданный упражнением 3.
Чтобы записать макрос без использования макрорекордера, вы можете ввести этот макрос в существующий модуль или создать новый модуль, который будет содержать этот макрос.
Написание новых макросов и процедур
До сих пор в этом учебно-методическом пособии использовался термин макрос (macro) как для макросов, которые вы записываете рекордером, так и для макросов, которые пишите сами. Существует другой термин, помогающий различать эти макросы. Строго говоря, термин макрос применим только для инструкций, которые вы записываете с помощью макрорекордера. Иногда в литературе макросами называют программы, которые не имеют аргументов (вы, наверное, уже поняли, что записываемые рекордером макросы не могут иметь аргументов). Макросы, которые вы пишете заново более точно называются
подпроцедурами (subprocedures) или просто процедурами (procedures). Далее в этом учебно-методическом пособии термин макрос относится к коду, записываемому с помощью макрорекордера, а термин процедура – к коду VBA, который вы пишете сами.
Если документ, в котором вы хотите сохранить процедуру, еще не содержит модуль, вы должны вставить модуль перед тем, как сможете написать процедуру VBA в этом проекте. Вы можете также вставить новый модуль, если существующие модули заполнены (модуль может содержать не более 4000 строк) или если вы просто хотите создать новую процедуру VBA в ее собственном модуле.
Если вы решили написать процедуру VBA в новом модуле, выполните следующие шаги для добавления модуля в проект:
üубедитесь, что в Excel открыта рабочая книга, в которой вы хотите сохранить процедуру;
üнажмите Alt+F11 для активизации Редактора VB;
üв Project Explorer выделите проект, в который хотите добавить модуль (скорее всего, в этот момент он там будет один);
üвыберите команду Insert/Module (Вставка/Модуль) или на панели Standard с помощью кнопки Insert <object> (Вставка объекта) выберите в раскрывающемся меню Module. Редактор VB добавляет новый модуль в проект и
29
открывает Code Window для нового модуля.
Упражнение 5
Добавьте новый модуль в проект.
Когда Редактор VB вставляет новый модуль, он дает ему имя в соответствии с правилами, изложенными ранее в этой части; ваш новый модуль будет иметь имя по умолчанию Module (Модуль) с последующим номером. Всякий раз при вставке модуля следует переименовывать его, чтобы этот модуль имел описательное имя. Для переименования модуля выполните следующие шаги:
üвыделите в Редакторе VB модуль, который будете переименовывать;
üесли Properties Window (Окно свойств) еще не выведено на экран, выберите команду View/Properties Window (Вид/Окно свойств) или щелкните на
кнопке Properties Window на панели инструментов, чтобы отобразить его (рис. 10);
Рис. 10
ü в текстовое поле Name (Имя) в Properties Window введите новое имя для модуля. Как только вы уберете курсор вставки из текстового поля Name, Редактор VB переименует модуль
Упражнение 6
Переименуйте созданный модуль упражнением 5, дав ему имя NewModule.
Для написания новой процедуры в существующем модуле необходимо сначала открыть Code Window (Окно программы) для модуля, в котором вы хотите написать процедуру. Чтобы открыть Code Window для модуля, либо щелкните дважды на этом модуле в Project Explorer, либо выделите этот модуль в
Project Explorer и затем выберите команду View/Code (Вид/Программа).
Чтобы написать исходный код для процедуры, независимо от того, добавляете ли вы процедуру в новый или в уже существующий модуль, поместите курсор вставки в Code Window в то место в модуле, куда вы хотите ввести новую процедуру.
Вы можете ввести исходный код новой процедуры VBA в любом месте в модуле, следя за тем, чтобы новая процедура начиналась после оператора End Sub, который заканчивает предыдущую процедуру, и перед оператором Sub, который начинает следующую процедуру в модуле. Для многих пользователей самым простым является добавление новых процедур в конец модуля.
Когда вы пишете новую процедуру, вы должны указать имя процедуры и
30
включить ключевое слово Sub в начале процедуры и ключевые слова End Sub – в конце.
Задание 4. Напишите процедуру, отображающую на экране в новом окне сообщение “Привет, Excel!”.
Для этого:
üоткройте любую рабочую книгу Excel или создайте новую рабочую
книгу;
üнажмите Alt+F11 для активизации Редактора VB;
üв Project Explorer выделите рабочую книгу, в которой хотите сохранить эту программу;
üвыберите Inser/Module (Вставка/Модуль), чтобы добавить новый модуль
квашему проекту. Редактор VB добавляет новый модуль и открывает для него
Code Window;
üпереименуйте новый модуль, дав ему имя FirstProgram;
üубедитесь, что курсор вставки находится в начале пустой строки в Code Window, и введите текст, показанный в листинге 2, нажимая на Enter в конце каждой строки для начала новой строки.
Листинг 2 – Процедура HelloExcel
1Sub HelloExcel()
2MsgBox "Здравствуй, Excel!"
3End Sub
Редактор VB содержит несколько возможностей, помогающих в написании процедур. Во-первых, как только вы нажмете на Enter после ввода ключевого слова Sub и имени процедуры, Редактор VB автоматически добавляет ключевые слова End Sub. Таким образом, вам не приходится беспокоиться о том, что вы можете случайно забыть об этом важном элементе процедуры. Во-вторых, Редактор VB включает возможность, известную как Auto Quick Info (Краткие сведения). Как только вы вводите MsgBox и нажимаете на клавишу пробела (строка 2 листинга 2), появляется всплывающее окно, показывая полный список аргументов для встроенной процедуры VBA или функции, которую вы только что ввели (MsgBox – в данном случае). Аргумент, значение которого, как ожидается, вы теперь должны ввести, выделен полужирным шрифтом во всплывающем окне Auto Quick Info. Всплывающее окно Auto Quick Info закрывается, если вы нажимаете на Enter для начала новой строки в Code Window или используете
клавиши со стрелками или мышь для перемещения курсора вставки с текущей строки на другую. Вы можете также закрыть окно Auto Quick Info, нажимая на клавишу Esc. Если вас интересует возможность Auto Quick Info, вы можете включать и выключать ее с помощью команды Tools/Options (Сервис/Параметры) в Редакторе VB.
Каждое объявление процедуры должно начинаться с ключевого слова Sub, за которым следует пробел и затем – имя процедуры. В листинге 2 именем процедуры является HelloExcel. Финальная часть объявления процедуры – это пара пустых круглых скобок. Эти скобки обязательны.
31