Получение контекстно-зависимой справки VBA

Создание, выполнение, сохранение процедур

Для автоматизации выполнения действий при помощи VBA необходимо создать программу (код) VBA, который хранится в процедуре. Процедура состоит из операторов (инструкций) VBA. Добавить код в модуль VBA можно тремя способами:

- записать последовательности действий пользователя с автоматическим преобразованием их в код VBA (выполняли в лабораторной работе №1);

- ввести код с клавиатуры;

- скопировать программный код VBA из существующего модуля и вставить его в модуль пользователя.

Ввод кода с клавиатуры

Создание первой процедуры требует выполнения двух шагов: сначала надо вставить модуль в рабочую книгу, а затем в этом модуле написать процедуру. Приложение может содержать несколько модулей; в этом случае их можно организовать по назначению, виду и т.п. Процедура “Начало_VBA”, разработка которой приведена ниже, выводит на экран окно сообщения пользователю "Начинаем работать с VBA".

Создание процедуры с именем “Начaло_VBA”, в которой на экран выводится сообщение "Начинаем работать с VBA".

Excel 2007/ 2010/ 2013

1. На вкладке Разработчик в группе Код щёлкнуть по кнопке или, удерживая клавишу Alt, нажать клавишу F11.

Отобразится окно проектов Project Explorer (рис. 4).

Рис. 4. Окно проектов Project Explorer

2. Щёлкнуть правой кнопкой мыши на элементе ЭтаКнига.

3. В появившемся контекстном меню (рис.5) выбрать команду Insert Ò Module. В окно проектов приложения будет добавлен модуль Module1 (рис. 6).

Рис.5. Контекстное меню

Рис. 6. Окно проектов

В верхней части окна кода модуля находится инструкция Option Explicit, которая требует явно описывать все переменные с помощью операторов Dim, Private, Public, ReDim и Static. Эта инструкция в новом модуле появляется только тогда, когда в диалоговом окне Options на вкладке Editor установлен флажок опции Require Variable Declaration (рис. 7). Хороший стиль программирования рекомендует явно описывать все переменные. Диалоговое окно Options открывается командой Tools Ò Options (рис.8).

Рис. 7. Диалоговое окно Options                      Рис. 8. Команда Tools > Options

При попытке использовать переменную без её объявления при запуске процедуры на выполнение будет выдано сообщение об ошибке Variable not defined (Переменная не определена).

4. Выбрать в меню окна проектов команду Insert Ò Procedure (рис.9).

Рис.9. Команда Insert Ò Procedure

Откроется окно Add Procedure (рис. 10).

Рис. 10. Окно добавления процедуры

5.  В поле Name ввести имя процедуры, например, «Начало_VBA». В секции Туре установить переключатель Sub и щёлкнуть на кнопке ОК. Как показано на рис.11, в модуль будет добавлена пустая процедура Начало_VBA. Эта процедура имеет по умолчанию статус Public, что делает её доступной из любой другой процедуры данной рабочей книги. В пустой строке находится текстовый курсор, предлагая начать ввод кода процедуры.

Рис. 11. Пустая процедура VBA

6. Ввести за строкой “Public Sub Начало_VBA()” инструкцию вывода на экран сообщения:

MsgBox "Начинаем работать с VBA"

После нажатия клавиши пробела за словом MsgBox появится окно (рис.12) с информацией о данной инструкции:

MsgBox(Prompt, [ Buttons As VbMsgBoxStyle = vbOKOnly]…)

Рис.12. Ввод инструкций процедуры Начало_VBA

Текст процедуры Начало_VBA показан на рис. 13.

Рис.13. Процедура Начало_VBA

Имена VBA для подпрограмм и функций, как и всех других объектов VBA, образуются на основании следующих правил:

- первый символ имени должен быть буквой (латинского или русского алфавита);

- имя может содержать буквы, цифры и знаки подчеркивания;

- имя не может содержать пробелы, точки, запятые, восклицательные знаки (!) и символы @, &, $, #; в качестве разделителей слов рекомендуется использовать знаки подчеркивания;

- имя не должно иметь более 255 символов.

Выполнение процедуры

После создания процедуры её можно сразу выполнить. Это можно сделать одним из двух способов:

- использовать команду Run Sub/UserForm из меню Run,

- нажать клавишу <F5>.

Выполним процедуру Начало_VBA первым способом:

1. Выбрать пункт Run стандартной панели инструментов редактора Visual Basic (рис.14)

Рис.14. Окно Run стандартной панели инструментов

2. В раскрывшемся меню выбрать пункт Run Sub/UserForm. Появится диалоговое окно с именем процедуры (рис.15)

Рис.15. Окно макросов

3. Щёлкнуть по кнопке Run или нажать клавишу Enter.

 

Процедура выполнится и отобразит окно сообщения (рис. 16).

Рис. 16. Результат выполнения процедуры Начало_VBA

4. Щелкнуть кнопку ОК; произойдёт возврат в окно редактора Visual Basic.

Сохранение процедуры

Чтобы сохранить новую процедуру, надо сохранить рабочую книгу, где находится эта процедура. Это можно сделать двумя способами:

1. В зависимости от используемой версии MS Office Выбрать опцию меню File, щелкнуть кнопку File или кнопку  и выбрать
Сохранить как ….

2. Можно сохранить рабочую книгу из редактора Visual Basic, выбрав опцию меню File à Сохранить как…

Далее в окне «Сохранение документа» выбрать место сохранения файла (папку), указать имя файла («Начало_VBA»), если вы работаете в Excel 2007/2010, выбрать тип файла Книга Excel с поддержкой макросов и нажать кнопку “Сохранить” или клавишу <Enter>. Рабочая книга, модуль и процедура будут сохранены.

Следует обратить внимание на то, что в Ecxel 2007/2010/2013 имя сохранённого файла будет иметь расширение “xlsm”. Это означает, что это файл Excel 2007, Excel 2010 или Excel 2013, содержащий макросы. Если же предполагается, что сохраняемый файл будет использоваться в Excel 97–2003, то тогда для его сохранения в меню форматов нужно выбрать пункт .

Кроме того, следует иметь в виду, что рабочие книги, в том числе содержащие макросы, полученные в Excel 97–2003, можно использовать в Excel 2007, Excel 2010, Excel 2013.




Excel 97 – 2003

1. Вызвать Excel.

2. Открыть рабочую книгу, в которую нужно вставить процедуру, или оставить Книга1, если создаётся новое приложение.

3. Выполнить команду Сервис | Макрос | Безопасность

4. В диалоговом окне “Безопасность” на вкладке “Уровень безопасности” нажать кнопку “Низкая (не рекомендуется)” и щёлкнуть мышью OK. В противном случае при запуске Excel программные средства VBA будут недоступны, и при открытии файла Excel, для которого не был уровень безопасности “Низкая”, появится сообщение о том, что макросы были отключены.

Примечание

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

5. Выполнить команду Сервис Ò Макрос Ò Редактор Visual Basic. Откроется окно редактора Visual Basic. Если окно проектов не будет отражено, нажать комбинацию клавиш <Ctrl+R>. В левой части окна редактора Visual Basic отобразится окно проектов Project Explorer (рис. 17).

Рис. 17. Окно проектов Project Explorer

6. Щёлкнуть правой кнопкой мыши на элементе ЭтаКнига.

В появившемся контекстном меню (рис.18) выбрать команду Insert Ò Module.

Рис.18. Контекстное меню

В приложение будет добавлен модуль Module1 (рис. 19).

Рис. 19. Окно проектов

В верхней части окна кода модуля находится инструкция Option Explicit, которая требует явно описывать все переменные с помощью операторов Dim, Private, Public, ReDim и Static. Эта инструкция в новом модуле появляется только тогда, когда в диалоговом окне Options на вкладке Editor установлен флажок опции Require Variable Declaration (Рис. 20). Хороший стиль программирования рекомендует явно описывать все переменные. Диалоговое окно Options открывается командой Tools Ò Options (рис.21).

 

 

 

Рис.20. Диалоговое окно Options                       Рис.21. Выбор команды

                                                                                                             Tools Ò Options

При попытке использовать переменную без её объявления при запуске процедуры на выполнение будет выдано сообщение об ошибке
“Variable not defined” (“Переменная не определена”).

7. Выбрать в меню окна проектов команду Insert ÒProcedure (рис.22).

Рис. 22. Выбор команды Insert Ò Procedure

8. Откроется окно добавления процедуры в проект Add Procedure, в поле Name ввести имя процедуры, например, «Начало_VBA». (рис. 23).

Рис. 23. Окно добавления процедуры

9. В секции Туре установить переключатель Sub и щёлкнуть на кнопке ОК. Как показано на рис.8, в модуль будет добавлена пустая процедура «Начало_VBA». Эта процедура имеет по умолчанию статус Public, что делает её доступной из любой другой процедуры данной рабочей книги. В пустой строке находится текстовый курсор, предлагая начать ввод кода процедуры.

 

Рис. 24. Пустая процедура VBA

10. Ввести за строкой «Public Sub Начало_VBA» следующий текст:

MsgBox "Начинаем работать с VBA"

После нажатия клавиши пробела за словом MsgBox появится окно (рис.25) с информацией о данной инструкции:

MsgBox(Prompt, [ Buttons As VbMsgBoxStyle = vbOKOnly]…)

Рис.25. Ввод инструкций процедуры Начало_VBA

Текст введённой процедуры показан на рис. 26.

Рис. 26. Процедура Начало_VBA

Имена VBA для подпрограмм и функций, как и всех других объектов VBA, образуются на основании следующих правил:

- первый символ имени должен быть буквой (латинского или русского алфавита);

- имя может содержать буквы, цифры и знаки подчеркивания;

- имя не может содержать пробелы, точки, запятые, восклицательные знаки (!) и символы @, &, $, #; в качестве разделителей слов рекомендуется использовать знаки подчеркивания;

- имя не должно иметь более 255 символов.


Выполнение процедуры

После создания процедуры её можно сразу выполнить. Это можно сделать одним из двух способов:

1. использовать команду Run Sub/UserForm из меню Run,

2. нажать клавишу <F5>.

Выполним процедуру Начало_VBA первым способом.

1. Выбрать пункт Run стандартной панели инструментов редактора Visual Basic (рис.271)

Рис.27. Окно Run стандартной панели инструментов

2. В раскрывшемся меню выбрать пункт Run Sub/UserForm.

3. Процедура выполнится и отобразит окно сообщения (рис. 28).

Рис. 28. Результат выполнения процедуры Начало_VBA

4. Щелкнуть кнопку ОК; произойдёт возврат в окно редактора Visual Basic.

Сохранение процедуры

Чтобы сохранить новую процедуру, надо сохранить рабочую книгу, где находится эта процедура. Можно сохранить рабочую книгу из редактора Visual Basic. Для этого нужно произвести следующие действия.

1. Выполнить команду File Ò Save Книга1.

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

3. Ввести «Начало_VBA» в качестве имени книги и нажать клавишу <Enter>. Рабочая книга, модуль и процедура будут сохранены.



Получение контекстно-зависимой справки VBA

Обратиться к справочной системе VBA можно двумя способами:

- использовать функциональную клавишу <F1>;

- использовать опцию меню Help.

Использование функциональной клавиши <F1> даёт возможность получить справку по всем объектам и ключевым словам VBA. Особенностью этого способа является то, что необходимо точно указать название сущности, по которой необходимо получить справку: имя объекта, его свойства, метода или события, ключевое слово инструкции VBA и т.п. Для получения контекстно-зависимой справки необходимо в тексте модуля или вне его курсор позиционировать на ключевое (зарезервированным) слово и нажать на клавишу <F1>.

В качестве примера получим сведения о функции Array (рис.29). Для этого в окне кода редактора Visual Basic слово array и нажать <F1>. Появится справка (рис. 30).

Рис. 29. Получение справки по функции Array

Рис. 30. Вид справки по функции Array

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

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

Находясь в окне Microsoft Visual Basic, следует нажать на пиктографическом меню на пиктограмму с изображением знака вопроса или выбрать пункт меню Help, и в приведённом ниже выпадающем меню

выбрать пункт «Справка: Microsoft Visual Basic», в появившемся окне нажать на лупу, в месте появления курсора ввести свой вопрос «What add the new worksheet» и снова нажать на лупу. Появится окно справки.

Все те, кто пользовался Microsoft Office 2003, могут вспомнить анимированных помощников, которые развлекали в уголке монитора. У них была своя цель – помочь пользователям освоиться при работе с программой, дать дельные рекомендации и советы.

 

Но по большей части эти «анимашки» занимались тем, что время от времени делали нехитрые движения и заставляли улыбнуться. Многих Скрепка (Кот, Маг или Собака) просто раздражали. На рис. 31 показано как мог выглядеть такой помощник. В Microsoft Office 2007/2010/2013 такой функции нет.

Рис.31. Помощник в окне справочной системы MS Office 2003

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: