Преобразование макросов в процедуры VBA. Vba макрос


Макросы и VBA. VBA для чайников

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

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

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

Поделитесь на страничке

Следующая глава >

it.wikireading.ru

Структура макросов VBA. В чем отличие макроса от процедуры?

Структура макроса VBA

Рассмотрим структуру макроса и его составные части. Результатом записи макроса является так называемая подпрограмма (subprogram). Если вы рассмотрите несколько записанных макросов, то увидите, что все они имеют общую структуру. Каждый макрос VBA начинается со слова Sub (сокращение слова subprogram – подпрограмма), следом за которым идет имя макроса. Строку с ключевым словом Sub и именем макроса называют строкой объявления макроса. Имя макроса должно начинаться сбуквы, но может содержать и числа. Имя макроса не может включать в себя пробелы или знаки препинания. В Excel максимальная длина имени макроса – 64 символа, а в Word она может составлять до 80 символов. За именем макроса всегда следуют пустые круглые скобки. Сразу за объявлением макроса следует тело макроса, которое может содержать, либо не содержать комментарии. Комментарий – это строка в макросе VBA, которая не содержит инструкций, это поясняющий текст. Строки комментариев начинаются с прямого апострофа ('), который находится на той же клавише, где кавычки. Используются комментарии для того, чтобы код подпрограммы был более понятен при чтении.

Каждая строка в теле макроса состоит из одного или нескольких операторов VBA. Оператор VBA – это последовательность ключевых слов и других символов, которые совместно составляют одну полную инструкцию. На одной строке можно записать несколько инструкций, разделив их двоеточием, но, как правило, каждую инструкцию начинают с новой строки, это улучшает наглядность текста программ. За телом макроса следует строка, содержащая ключевые слова End Sub, что свидетельствует о том, что достигнут конец макроса. При выполнении инструкции End Sub никаких видимых действий не происходит, но при этом освобождается вся память, которая использовалась для выполнения подпрограммы. При просмотре макросов можно заметить, что различные части текста макроса отображаются различными цветами. Так, например, комментарии имеют зеленый цвет шрифта, а ключевые слова, имеющие строго определенный смысл отображаются синим цветом. Остальной текст макроса отображается черным цветом. При возникновении ошибок в программе, часть кода подкрашивается красным цветом. Для выделения различных секций макроса используются отступы в коде. Каждый уровень отступа помогает отделять одну часть макроса от другой. Отступы делать не обязательно, макросы будут выполняться независимо от них, размещение строк с отступом выполняется макрорекордером и хорошими программистами для более легкого чтения их программ. В коде макроса зачастую можно встретить сочетание пробела и символа подчеркивания (_) в конце строки. Эта комбинация называется символом продолжения строки и сообщает о том, что следующая строка макроса должна быть присоединена к текущей строке для образования единого оператора.

В чем отличие макроса от процедуры?

Многие пользователи используют термин «макрос» как для макросов, записанных рекордером, так и для макросов, написанных вручную. Существует термин, помогающий различать эти макросы. Термин «макрос», по большому счету, применим только к макросам, записанным при помощи макрорекордера и не имеющим переменных величин. Макросы, которые написаны, как говорится, с нуля, вручную, более точно называются подпроцедурами (subprocedures) или просто процедурами (procedures). В VBA предусмотрены процедуры типа Sub (подпрограмма) – универсальная процедура для выполнения каких-либо действий и процедуры типа Function (функция) – набор команд, возвращающий вызвавшей её программе какое-либо значение, которое там будет использовано.

Другие материалы по теме:

macros-vba.ru

Преобразование макросов в процедуры VBA

Преобразование макросов в процедуры VBA

Если вы создали много макросов, а потом решили перейти к программированию на VBA, не следует беспокоиться о том, что придется заново переписывать на VBA все созданные макросы. В Access существует возможность автоматического преобразования макросов в процедуры на VBA. Это касается как макросов, связанных с событиями в формах и отчетах, которые преобразуются в процедуры обработки событий, так и общих макросов, не связанных с формами и отчетами. Все они преобразуются в отдельные стандартные модули. Давайте попробуем преобразовать в процедуры обработки событий макросы, назначенные событиям формы "Наклейки для клиентов" (Customers Labels Dialog):

  1. Откройте форму "Наклейки для клиентов" (Customers Labels Dialog) в режиме Конструктора.
  2. Выберите команду Сервис, Макрос, Преобразовать макросы формы (Tools, Macro, Convert form’s Macros to Visual Basic).
  3. В диалоговом окне Преобразование макроса формы (Convert form macros) (рис. 11.19) нажмите кнопку Преобразовать (Convert), оставив флажки установленными по умолчанию.
  1. Когда преобразование закончится, в форме "Наклейки для клиентов" (Customers Labels Dialog) щелкните правой кнопкой мыши, например по кнопке Отменить, и выберите команду Свойства (Properties).
  2. В диалоговом окне Свойства (Properties) раскройте вкладку События (Events).
  3. В поле для события Нажатие кнопки (On Click) оказалось установленным значение [Процедура обработки событий] ([Event Procedure]). Щелкните по кнопке Построителя, находящейся справа от поля, — откроется окно редактора VBA с текстом процедуры.

В этой процедуре, полученной из макроса, используются объект DoCmd для выполнения макрокоманды закрытия формы. В соответствии с флажками, установленными в окне Преобразование макроса (Convert Macro), комментарии в макросе были преобразованы в комментарии в процедуре и был добавлен код обработки ошибки, который выдает на экран сообщение об ошибке в случае ее возникновения . Аналогично выполняется преобразование макросов, назначенных событиям отчета. Теперь рассмотрим преобразование в процедуру VBA макроса, не связанного с событием формы или отчета, например созданного ранее макроса "Менеджеры по продажам".

  1. Щелкните по ярлыку Макросы (Macros) в окне базы данных "Борей". Появится список макросов. Выделите макрос "Менеджеры по продажам".
  2. Выберите команду Сервис, Макрос, Преобразовать макросы (Tools, Macro, Convert Macros to Visual Basic).
  3. Откроется такое же диалоговое окно, как в предыдущем примере , в котором необходимо нажать кнопку Преобразовать (Convert). После окончания процесса преобразования появится сообщение об успешном завершении процесса преобразования и откроется окно редактора VBA, в котором можно посмотреть полученный код на VBA.
  4. Макрос преобразуется в функцию с аналогичным именем Менеджеры_по_продажам (пробелы заменились символами подчеркивания).

После преобразования исходный макрос "Менеджеры по продажам" не был удален, а в списке модулей в окне базы данных "Борей" появился новый модуль с именем "Преобразованный макрос — Менеджеры по продажам" (Converted Macro — Менеджеры по продажам). Существует еще один способ преобразования макросов в модуль VBA:

  1. Выделите макрос "Менеджеры по продажам" в окне базы данных "Борей".
  2. Выберите команду Файл, Сохранить как (File, Save As).
  3. В появившемся диалоговом окне Сохранение (Save As), в раскрывающемся списке Как (As) выберите элемент Модуль (Module) и нажмите кнопку ОК.

    Публикация данных в корпоративной сети и Интернете В течение последних нескольких лет мы стали свидетелями сильного развития технологии публикации информации, которое может иметь столь же большое значение, как и изобретение печатного станка. Причина сегодняшнего сдвига в публикации информации — создание сети Интернет, World Wide Web и совершенных средств просмотра и хранения данных, которые существенно облегчают сбор и представление информации. World Wide Web связывает большое количество ресурсов, имеющихся в сети Интернет. Используя World Wide Web, можно перемещаться между тысячами компьютерных узлов, системными приложениями, файлами и документами. Простота перемещения между документами и возможность читать их, используя любую компьютерную систему, позволили внедрить технологию Web в организациях. Многие организации разрабатывают собственные сети (интранет), чтобы размещать в них свою информацию для сотрудников. Еще в предыдущей версии семейства Microsoft Office 2000 были объединены две мощные информационные технологии, определяющие новую модель работы с компьютером. Первая основана на том, что информация может быть размещена где угодно — на локальном жестком диске, в локальной или корпоративной сети или в глобальной сети Интернет. Другая — на том, что пользователи реально работают не с приложениями, а непосредственно с документами и содержащейся в них информацией. В результате можно выбрать один из двух возможных подходов к работе:

  • работа преимущественно с приложениями Office с эпизодическими обращениями в интранет или Интернет за необходимой Web-страницей, документом, надстройкой для приложения или дополнительной информацией о программе;
  • работа преимущественно внутри Internet Explorer, использование его в качестве единственной среды, в которой можно просматривать и редактировать любой документ, расположенный на вашем жестком диске, в сети компании или в Интернете.

Корпорация Microsoft включила в Access 2000 средства публикации объектов базы данных в виде статических или динамических Web-страниц. Во многих объектах базы данных (например, таблицах, формах, кнопках на формах и т. п.) можно использовать гиперссылки для перехода к другим документам. Однако это еще не все. В Access 2000 появилась возможность создания интерактивных Web-страниц для просмотра, ввода и анализа данных в виде нового типа объектов базы данных — страниц доступа к данным. В новой версии Microsoft Office 2002 сделан следующий шаг в направлении интеграции с Интернет-сетями: это введение формата XML как общего формата для представления документов всех приложений семейства Microsoft Office. В сочетании с удобными средствами публикации Web-страниц и набором Web-компонентов, входящим в комплект поставки Microsoft Office, Access 2010 становится мощным инструментом для создания информационных систем, способных предоставить удобный доступ к информации практически из любой точки земного шара. В этой главе рассматриваются следующие вопросы:

  • Основные сведения об Интернете и новом формате XML
  • Использование гиперссылок в объектах баз данных
  • Экспорт объектов базы данных в формат HTML и XML
  • Разработка и использование страниц доступа к данным
  • Возможности элементов управления из коллекции Web-компонентов
  • Средства публикации данных

advicecomp.ru