Приступая к работе с VBA в Outlook 2010
Сводка. Эта статья знакомит непрограммистов с некоторыми методами использования программирования на Visual Basic для приложений (VBA) в целях расширения возможностей Microsoft Outlook 2010. Данный раздел содержит обзор языка VBA, инструкции по доступу к VBA в Outlook 2010, подробное решение практической проблемы с помощью программирования на VBA в Outlook, а также советы по программированию и отладке.
Дата последнего изменения: 5 апреля 2011 г.
Применимо к: Office 2010 | Outlook 2010 | VBA
В этой статье Программирование на VBA в Outlook 2010 Программирование на VBA 101 Макросы и редактор Visual Basic Обеспечение доступности макросов Макрос изменения контакта Распространение кода Сводка Дополнительные материалы
Содержание
Программирование на VBA в Outlook 2010
Программирование на VBA 101
Макросы и редактор Visual Basic
Макрос изменения контакта
Программирование на VBA в Outlook 2010
Сталкиваетесь с необходимостью раз за разом удалять множество контактов в Outlook 2010? Почтовый ящик переполнен из-за наплыва вложений в электронные письма, которые необходимо сохранять по одному на жесткий диск? Хотите автоматически создавать элементы календаря на основе определенных сообщений электронной почты? Возникают трудности с эффективным переносом контактов из Microsoft Outlook 2010 в электронную таблицу Microsoft Excel 2010?
Можно выполнить эти задачи и достичь гораздо большего с помощью Visual Basic для приложений (VBA). Это простой и в то же время мощный язык программирования, который можно использовать, чтобы расширить возможности приложений Office 2010 и автоматизировать повторяющиеся задачи.
Данная статья предназначена для опытных пользователей Outlook, которые желают узнать о VBA и получить некоторое представление о том, как программирование способно помочь им настроить Outlook 2010 в соответствии со своими потребностями.
Перед ознакомлением с ней, возможно, стоит прочесть вводную статью Начало работы с VBA в Office 2010, в которой подробнее описываются основы программирования на VBA.
Большое преимущество программирования на VBA в Office 2010 состоит в том, что практически любую операцию, которую можно выполнить с помощью мыши, клавиатуры или диалогового окна, можно также проделать с помощью VBA. Более того, если ее удалось осуществить посредством VBA однажды, ее можно легко повторить сотню или тысячу раз. По сути, автоматизация повторяющихся задач — это одно из наиболее распространенных применений VBA в Office.
Помимо мощи скриптов VBA, ускоряющих повседневные задачи, VBA можно воспользоваться для добавления новых функциональных возможностей в приложения Office 2010. Кроме того, можно предъявлять пользователю запросы и взаимодействовать с ним так, как это требуется с учетом потребностей вашего предприятия. Например, в Outlook 2010 VBA может применяться для сортировки, экспорта и изменения контактов, сообщений электронной почты, элементов календаря или задач такими методами, которые не представлены в стандартном интерфейсе пользователя.
Руководство в этой статье посвящено автоматизации Outlook при помощи VBA. Это реальный пример изучения программирования, VBA и средств разработки, которые доступны вам как опытному пользователю Outlook.
Выбор подходаПрограммирование на VBA — это мощное решение, но данный подход не всегда является оптимальным. Иногда, чтобы достичь поставленных целей, имеет смысл воспользоваться другими методами.
Важнейший вопрос состоит в поиске более легкого способа. Перед запуском проекта VBA обратите внимание на встроенные инструменты и стандартные функциональные возможности. Например, при наличии в Outlook длительной операции подумайте о том, чтобы решить эту проблему с помощью правил. Можете ли вы выполнить задачу единожды, а затем повторить ее с помощью сочетания клавиш CTRL+Y ("Повторить")?
Outlook 2010 — это приложение с широкими возможностями; возможно, что нужное решение уже в нем предусмотрено. Уделите время изучению дополнительных сведений об Outlook 2010 до начала программирования.
Перед созданием проекта VBA убедитесь в том, что у вас есть время на работу с VBA. Программирование требует внимания и может оказаться непредсказуемым. Если вы — начинающий, вам тем более не стоит увлекаться программированием, если у вас не хватает времени на внимательную работу. Попытки написать "скрипт на скорую руку" для решения проблемы в сжатые сроки может привести к напряженной ситуации. Если вы торопитесь, воспользуйтесь более привычными методами, даже если они сопряжены с монотонностью и повторениями.
Программирование на VBA 101
Использование кода для выполнения операций приложениямиВозможно, вы полагаете, что написание кода — сложный или загадочный процесс, но его базовые принципы основаны на применении повседневной логики и вполне доступны. Приложения Office 2010 созданы таким образом, что те вещи, которые называются объектами и которые могут получать инструкции, представлены в них во многом аналогично тому, как выглядит телефон с кнопками, предназначенными для взаимодействия с этим телефоном. Когда вы нажимаете кнопку, телефон распознает инструкцию и включает соответствующую цифру в набираемую последовательность. В мире программирования вы взаимодействуете с приложением с помощью отправки инструкций различным объектам в нем. Эти объекты могут расширяться, но и у такого расширения есть пределы. Они смогут делать только то, для чего были разработаны, и выполнят только ваши инструкции.
Например, представьте пользователя, создающего в Outlook сообщение электронной почты, выбирающего получателя, вводящего тему сообщения, а затем нажимающего Отправить. В мире программирования VBA Outlook предоставляет объект MailItem. С помощью кода VBA можно задать тему и основной текст MailItem, а затем выбрать команду "Сохранить" или "Отправить". Прочтите эту статью, чтобы больше узнать об этих объектах, о том, как они организованы, а также о том, как их описывать и манипулировать ими.
Объекты, методы и свойстваРазработчики организуют объекты программирования в виде иерархии, и такая иерархия называется объектной моделью приложения. К примеру, папка "Входящие" является объектом Folder, который существует в объекте Outlook Namespace. Объект Folder содержит объекты MailItem и так далее. В объектных моделях приблизительно отражено то, что вы видите в интерфейсе пользователя. Они являются концептуальной картой приложения и его возможностей. С точки зрения программирования объект Folder может содержать любой тип объекта элемента, но, как правило, каждая из ряда папок, представленных в интерфейсе пользователя Outlook содержит главным образом определенный тип объекта элемента. Например, в интерфейсе пользователя Outlook есть папка "Контакты", в которой находятся в основном объекты ContactItem, а также папка "Календарь", по большей части содержащая объекты AppointmentItem и MeetingItem.
Определение объекта называется классом, и вы, возможно, увидите, как два этих термина используются попеременно. С технической точки зрения класс — это описание или шаблон, используемый для формирования или создания экземпляра объекта.
Уже существующим объектом можно манипулировать, задавая его свойства и вызывая его методы. Если представить объект в виде существительного, тогда свойства станут прилагательными, описывающими существительное, а методы — глаголами, которые приводят его в действие. Изменение свойства приводит к модификации определенной характеристики внешнего вида или поведения объекта. Вызов одного из методов объекта заставляет последний выполнить какое-либо действие.
Ознакомившись с базовой структурой объектной модели в Outlook, а также рядом ключевых свойств объектов Application, Explorer и Folder, которые дают вам доступ к текущему состоянию, можно приступить к расширению возможностей и управлению Outlook с помощью VBA.
Макросы и редактор Visual Basic
Теперь вам известно, как приложения Outlook 2010 предоставляют свои объектные модели. Возможно, вам не терпится совершить попытку вызова методов объекта, задать свойства объекта и принять меры в ответ на события объекта. Для этого необходимо написать свой код там и таким образом, чтобы он распознавался в Office. Обычно это делается с помощью редактора Visual Basic. Несмотря на то, что он установлен по умолчанию, многие пользователи бывают не осведомлены даже о его наличии до тех пор, пока его не включат на ленте.
Открытие вкладки "Разработчик"Все приложения Office 2010 используют ленту. Одной из вкладок на ленте является вкладка Разработчик, где можно вызвать редактор Visual Basic и другие инструменты разработчика. Поскольку в Office 2010 вкладка Разработчик не показана по умолчанию, необходимо вывести ее на экран, выполнив следующую процедуру.
Включение вкладки "Разработчик"На вкладке Файл выберите Параметры, чтобы открыть диалоговое окно Параметры Outlook.
Щелкните Настроить ленту в левой части диалогового окна.
В разделе Выбрать команды из, расположенном слева в окне, выберите Популярные команды.
В разделе Настроить ленту, который находится справа в диалоговом окне, выберите Основные вкладки, а затем установите флажок Разработчик.
Нажмите кнопку ОК.
В Office 2007 показ вкладки Разработчик выполняется путем нажатия кнопки Office, выбора пункта Параметры , а затем установки флажка Показать вкладку "Разработчик" на ленте в категории Популярные диалогового окна Параметры .
После включения вкладки Разработчик можно легко найти кнопки Visual Basic и Макрос.
Рисунок 1. Вкладка "Разработчик" в Outlook 2010
Проблемы безопасностиПо умолчанию макросы на VBA отключены в Outlook для защиты от вирусов и другого вредоносного кода. Чтобы включить макросы, выполните следующую процедуру.
Включение макросовНа вкладке Файл выберите Параметры Outlook, чтобы открыть диалоговое окно Параметры Outlook, а затем щелкните Центр управления безопасностью.
Щелкните Настройки центра управления безопасностью, а затем выберите слева параметр Настройки макросов.
Выберите Уведомления для всех макросов и затем нажмите ОК. Этот параметр разрешает выполнение макросов в Outlook, но перед запуском макроса Outlook предлагает подтвердить свое желание запустить макрос.
Перезапустите Outlook, чтобы вступили в силу изменения конфигурации.
Редактор Visual BasicПосле показа вкладки Разработчик можно открыть редактор Visual Basic, который представляет собой встроенный инструмент, используемый при написании и редактировании кода VBA для Outlook. Чтобы открыть редактор Visual Basic, воспользуйтесь приведенной ниже процедурой.
Открытие редактора Visual BasicНажмите кнопку Макросы на вкладке Разработчик.
В появившемся диалоговом окне Макрос введите Test в разделе Имя макроса.
Нажмите кнопку Создать, чтобы открыть редактор Visual Basic, где уже введены основные параметры нового макроса.
Редактор Visual Basic содержит следующий код.
Sub означает "подпрограмма", которую можно определить на данный момент как "макрос". Запуск макроса Test приводит к выполнению любого кода, находящегося между Sub Test() и End Sub.
Теперь измените макрос, чтобы он выглядел аналогично следующему коду.
Рисунок 2. Макрос "Test" в редакторе Visual Basic
Не забывайте о левой панели редактора Visual Basic. Макрос "Test" находится в модуле 1 (Module1) проекта 1 (Project1). Модуль проекта содержит несколько модулей, и каждый из этих модулей содержит коллекцию из кода VBA, которую можно импортировать или экспортировать в виде BAS-файла.
Если объект существует, им можно манипулировать, задавая его свойства и вызывая его методы. Измененная вами подпрограмма содержит метод, который является кодом, выполняющим действие. Метод Test() в этой подпрограмме является теперь членом объекта Project1.
Для других приложений Office в редакторе Visual Basic может быть несколько проектов, но в VBA для Outlook указан всего один проект, и он всегда носит название "Project1".
Вернитесь на вкладку Разработчик в Outlook и снова нажмите кнопку Макросы. Выберите макрос Project1.Test в появившемся списке, а затем нажмите Выполнить, чтобы отобразить на экране маленькое окно сообщения с текстом "Hello, world!"
Поздравляем! Вы только что создали пользовательский код VBA и внедрили его в Outlook! Нажмите кнопку ОК в окне сообщения, чтобы закрыть его и завершить выполнение макроса.
Если окно сообщения не появляется, проверьте настройки безопасности макроса и перезапустите Outlook.
Обеспечение доступности макросов
Если вы часто пользуетесь тем или иным макросом, доступ к нему при помощи сочетания клавиш или кнопки на панели быстрого доступа, возможно, будет удобнее.
Чтобы создать кнопку для макроса Test на панели быстрого доступа, выполните следующую процедуру.
Создание кнопки для макроса на панели быстрого доступаЩелкните вкладку Файл.
Выберите Параметры, чтобы открыть диалоговое окно Параметры Outlook, а затем щелкните Панель быстрого доступа.
В разделе Выбрать команды из: этого списка выберите Макросы. В открывшемся списке найдите текст, который похож на Project1.Module1.Test, и выделите его.
Нажмите кнопку Добавить >>, чтобы добавить макрос в список справа, а затем нажмите кнопку Изменить…, чтобы выбрать изображение кнопки, которую нужно связать с макросом.
Нажмите кнопку "ОК". На панели быстрого доступа над вкладкой Файл должна появиться новая кнопка.
Теперь вы сможете быстро выполнить свой макрос в любое время без использования вкладки Разработчик. Попробуйте так и сделать.
Рисунок 3. Назначение макроса панели быстрого доступа
Макрос изменения контакта
Предположим, что у вас есть несколько контактов из компании под названием Example Systems и что у каждого из контактов имеется адрес электронной почты с доменом @example.com. Теперь представьте, что компания Example Networks покупает Example Systems и теперь в конце адресов электронной почты всех сотрудников указано @example.net. Если в Example Systems существует один или два контакта, данные легко изменить вручную. Однако если у вас 20, 50 или 100 контактов, VBA в Office часто применяется для автоматизации этой повторяющейся задачи.
В этой статье описывается, как использовать VBA в Outlook для изменения данных контактов, и поясняется ряд понятий VBA.
Доступ к папке "Контакты"Выполните действия, выбранные для создания макроса Test, чтобы создать новый макрос под названием CompanyChange в редакторе Visual Basic.
Первая задача состоит в том, чтобы получить доступ к объекту папки "Контакты" в Outlook, а затем сохранить ссылку на этот объект в виде переменной.
В программировании переменная — это временный именованный объект, который может содержать значение или ссылку на объект. В приведенном далее образце кода задействована переменная ContactsFolder. Этот код сообщает VBA о том, что он собирается поместить в него объект Folder и выполнить метод GetDefaultFolder объекта Session, чтобы найти папку Contacts и сохранить ссылку на него в этой переменной.
Редактор Visual Basic включает полезную запись автоматического кода под названием "Intellisense". Внимательно введите Session.GetDefaultFolder, а затем выберите открывающуюся круглую скобку для ввода его параметра. После этого в редакторе Visual Basic появится список вариантов. Выберите с помощью направленной вниз стрелки или мыши olFolderContacts, один из типов имеющихся папок, и нажмите клавишу Tab, чтобы его выделить.
Рисунок 4. Выбор типа папки с помощью Intellisense
Хотя при работе над кодом во избежание появления опечаток рекомендуется пользоваться копированием и вставкой, введите пока код в редакторе Visual Basic, чтобы увидеть, как вам способен помочь редактор.
Добавьте еще одну строку, чтобы включить обратную связь и проверить свой макрос во время выполнения. Кроме того, уделите минуту созданию кнопки Панель быстрого доступа для CompanyChange, как мы уже поступали в разделе "Обеспечение доступности макросов".
Items — это свойство объекта Folder, а Count — свойство свойства Items.
Выполните макрос. В окне сообщения должно появиться количество контактов, имеющихся в Outlook.
Если вы еще этого не сделали, откройте свою папку Контакты и создайте ряд образцовых контактов для сотрудников, работающих в воображаемой компании Example Systems. Присвойте каждому из таких контактов название компании Example Systems и создайте разные адреса электронной почты для каждого сотрудника, которые выглядят следующим образом: someone@example.com.
Коллекция объектовКоллекции — это одна из наиболее мощных функций таких современных языков программирования, как VBA. Коллекция — это набор объектов, который можно сохранить в свойстве и легко "пролистать", чтобы открыть доступ к каждому из них. В данном случае код должен циклически обработать коллекцию контактов, чтобы найти сотрудников Example Systems.
Как упоминалось ранее, переменная ContactsFolder обеспечивает доступ к коллекции Items папки. Коллекция Items для папки "Контакты" возвращает объекты типа ContactItem. Создайте переменную, содержащую ссылку на каждый экземпляр ContactItem.
Помните, что имеется также возможность использовать тип Object общего назначения, если вы не знаете, какой тип объекта возвращается из коллекции. Однако если тип объекта известен, точное его указание обладает множеством преимуществ.
Имея в наличии ContactItem, необходимо проверить название компании для каждого лица. Поскольку в объекте ContactItem хранится информация о контакте, для названия компании должно быть свойство. Но так как название этого свойства вам неизвестно, для его поиска следует прибегнуть к одному из следующих двух методов.
Определение названий свойствЧтобы в полной мере использовать объект в VBA, необходимо знать его свойства и методы. Хотя многие задачи можно выполнить, поработав с кодом примеров, которые можно найти в сети, систематическое изучение используемых объектов позволит расширить спектр параметров, ускорить отладку и сэкономить время.
Например, информацию о ContactItem можно найти в "Справочнике разработчика Outlook", выделив в своем коде ContactItem и нажав клавишу F1 для получения справки. Кроме того, в справке можно поискать ContactItem. Обязательно переходите по ссылкам в различных статьях, чтобы исследовать связанные объекты.
"Справочник разработчика" — это мощный инструмент программирования на VBA и один из способов поиска свойства, которое требуется для кода. После прочтения общей информации об объекте ContactItem щелкните ссылку "Члены объекта ContactItem", чтобы просмотреть список методов и свойств (в совокупности свойства и методы известны как члены).
Ознакомившись со списком, вы увидите, что присутствует свойство CompanyName. Похоже, оно должно сработать.
Помимо применения "Справочника разработчика Outlook" для поиска свойства или метода в редакторе Visual Basic можно воспользоваться Intellisense. Определив переменную Contact как ContactItem, можно ввести Contact с точкой, чтобы отобразить тот же список членов, что и указан в справке. Чтобы выбрать один из вариантов Intellisense, выделите его с помощью стрелок, которые направлены вверх или вниз, либо мыши. Затем нажмите клавишу Tab, чтобы выбрать его.
Intellisense не предоставляет описания различных членов, и поэтому подобное его применение наиболее полезно, когда контекст делает ваш выбор очевидным или когда вы уже знаете имя члена, но не можете в точности вспомнить, как оно пишется. Имена членов с орфографическими ошибками могут привести к ошибкам, которые не будут помечены в редакторе Visual Basic вплоть до выполнения макроса.
Циклическая обработка коллекцииТеперь у вас есть коллекция, вы знаете, какой тип объекта в ней находится и у вас есть свойство для доступа к найденным объектам. Вы готовы циклически обработать коллекцию и манипулировать содержащимися в ней объектами с помощью цикла For Each.
В псевдокоде вы готовы выполнить следующее.
В фактическом коде, который переводится в указанный ниже код, имеющий отношение к строке с оператором MsgBox можно выполнить следующее.
Перед повторным выполнением макроса откройте окно "Интерпретация" в редакторе Visual Basic. Для этого щелкните Вид в строке меню, а затем выберите Окно интерпретации. Ранее для получения из скрипта данных обратной связи применялся MsgBox. Несмотря на то, что MsgBox полезен, перед показом следующего сообщения всегда требуется нажимать ОК. В отличие от этого Debug.Print выдает данные по строке за раз в окне "Интерпретация" безо всякого ожидания. После выполнения скрипта в окне "Интерпретация" должен появиться список названий компаний. Помните, что он полезен для вас как для разработчика, но что пользователи, использующие этот макрос вместе с вами, не увидят его.
Принятие решения с помощью оператора IfВ вашем законченном решении требуется, чтобы макрос изменял только те контакты, которые работают в Example Systems, не трогая остальные контакты. Условная логика такого плана — предмет гордости программистов. Здесь можно воспользоваться оператором If, чтобы VBA выполнял код лишь при истинности заданного условия. В противном случае он должен переходить к коду, приведенному после оператора End If.
В случае проблемы, над которой вы работаете, определяющим условием является присвоение строки "Example Systems" свойству CompanyName текущего объекта ContactItem.
Рассматривая следующий код обратите внимание на двойные кавычки. Строковые (текстовые) значения в отличие от численных значений всегда заключены в двойные кавычки. В VBA игнорируются одинарные кавычки, которые применяются при написании комментариев для себя самого и других разработчиков.
Добавьте в свой код условие, чтобы скрипт в целом напоминал следующий код.
После выполнения этого кода в окне "Интерпретация" должны появиться имена контактов из Example Systems.
Рисунок 6. Использование окна интерпретации для вывода
Помните о способе сочетать для ясности фиксированные строки с помощью Debug.Print, а ранее с помощью MsgBox (например, слово "Найдено:", вслед за которым указывается возвращенное свойством значение). Чтобы он сработал, две текстовые строки нужно сочетать с применением оператора объединения строк (&).
Внимание! Продолжайте работать над этим учебным пособием с осторожностью. Вы работаете со своим фактическим списком контактов Outlook, а также с несколькими воображаемыми контактами из Example Systems. Замена названия компании для каждого вашего контакта названием "Example Networks" — не очень хорошая идея.
Изменение названия компанииВы уже почти закончили работу. Если вы загрузили свои контакты, можно их циклически обработать, а также отличить свои контакты от контактов из Example Systems. Чтобы выполнить замену на "Example Networks", следует изменить свойство CompanyName и вызвать метод Save для сохранения изменения.
Выполните этот макрос, а затем найдите среди своих контактов "Example Systems". Название компании в этих контактах должно теперь выглядеть следующим образом: "Example Networks". Учтите, что в целях последующего тестирования скрипта нужно снова заменить название компании на "Example Systems". Это можно сделать вручную либо путем создания другого макроса, который заменит его за вас.
Сохраните в коде оператор Debug.Print, даже если он не необходим для работы скрипта. Чем больше ответных данных вы и ваши пользователи получают от макроса, тем лучше.
Изменение адреса электронной почтыИзменение свойства CompanyName заключалось просто в замене строки целиком. Чтобы заменить домен @example.com адреса электронной почты доменом @example.net, необходимо выполнить строковую операцию. В каждой строке есть встроенная система нумерации, где каждому символу присвоен порядковый номер, начиная с 1. Для управления частями строк или целыми строками можно применять разные функции VBA. Изучение этих строковых операций сильно расширяет ваши возможности в VBA как программиста, так как существует множество ситуаций, требующих проверить наличие подстроки или изменить часть строки. Много полезных списков и примеров можно найти в Интернете, поискав "строковые функции VBA".
Чтобы выполнить простую замену одной подстроки другой, можно воспользоваться функцией Replace, но зачастую можно столкнуться с ситуациями, где для манипуляции строками нужен более сложный код. Добавьте следующую строку непосредственно перед тем, как код вызывает Contact.Save.
Тщательно прочтите код слева направо. В нем сказано, что свойству контакта "Email1Address" (первый адрес электронной почты) необходимо присвоить новое значение. Новое значение предоставляется в результате того, что функция Replace ищет в текущем свойстве Contact.Email1Address строку "example.com" и заменяет ее строкой "example.net".
Убедитесь в том, что параметру "Название компании" ваших воображаемых контактов присвоено значение "Example Systems", а затем выполните скрипт. Все адреса электронной почты должны теперь заканчиваться доменом @example.net, а всем параметрам "Название компании" должно быть присвоено значение "Example Networks".
Ввод кода в употреблениеСейчас у вас есть мощный макрос, но он ограничен, поскольку указать новое название компании можно только путем изменения кода. Чтобы сделать свой код в целом более полезным, можно прибегнуть к функции InputBox, предлагающей пользователю ввести данные.
Приведенный ниже код — финальный скрипт. Это полезное и законченное решение для Outlook.
Распространение кода
Перенос кода с того компьютера, где он был разработан, на другие компьютеры называется развертыванием и может играть существенную роль в проекте программирования. В данном разделе изучается метод перемещения нового макроса на другие компьютеры.
Для начала немного истории. Код VBA для Outlook разработан в качестве персональной среды разработки макросов. Он не предназначен для развертывания или распространения. Таким образом, сохранить макрос в документе так, как это принято в других приложениях Office вроде Excel или Word, не удается.
Чтобы перенести макросы Outlook VBA с одного компьютера на другой, можно экспортировать модули кода с первого компьютера и импортировать их на втором компьютере. Можно также скопировать исходный код проекта и вставить его в "Project1" на втором компьютере с помощью редактора Visual Basic.
Если вы разрабатываете решение, которое намерены распространять в широких кругах, вам стоит преобразовать свой код Visual Basic для приложений в надстройку COM для Outlook. Однако разработка надстройки COM обычно требует гораздо больших познаний в программировании, чем при создании короткого макроса. Поэтому, если ваш проект на Visual Basic для приложений относительно прост и он может потребоваться не слишком большому числу людей, отправьте им код с инструкциями, в которых поясняется, как открыть редактор Visual Basic и вручную импортировать ваш модуль кода.
Импорт и экспорт модулейПопробуйте экспортировать и импортировать свой новый макрос "Module1". Выберите Module1 на панели Проект, а затем щелкните меню Файл в редакторе Visual Basic и выберите Экспорт файла…. Вам будет предложено сохранить его в виде файла с расширением BAS в редакторе Visual Basic. Сохраните его под названием Contacts.bas. Если файлу по умолчанию присваивается другое расширение, убедитесь, что выбран Module1, а затем снова откройте диалоговое окно Экспорт файла.
Откройте Contacts.bas в программе "Блокнот", чтобы просмотреть свой код вместе со строкой заголовка, которая будет использоваться в редакторе Visual Basic для присвоения модулю названия при импорте кода.
Module1 применяется для локальных скриптов и экспериментов. Поэтому смените это название на другое, которое бы описывало макросы в модуле. Например, в качестве названия модуля можно взять слово Контакты, чтобы он назывался так же, как и файл BAS. Если вы позднее составите другие макросы для автоматизации различных аспектов обработки своих контактов, можно добавить сюда код и получить логическую группу макросов в одном модуле.
Теперь вернитесь к редактору Visual Basic. Щелкните Файл, выберите Импорт файла, а затем выберите импортируемый файл Contacts.bas.
Дважды щелкните новый модуль Контакты, который появляется в списке Модули на панели Проект, чтобы просмотреть свой код.
В Outlook нажмите кнопку Макросы на вкладке Разработчик. Должна появиться запись для …Project1.Contacts.CompanyChange.
Это последний шаг простейшего метода распространения кода макроса среди других членов вашей организации. Разумеется, чтобы импортировать Contacts.bas и добавить модуль Контакты в редактор Visual Basic, им надо будет включить показ вкладки Разработчик в Outlook 2010. По завершении импорта Contacts.bas они смогут выполнить ваш макрос с вкладки Разработчик или перейти к пункту Параметры Outlook и назначить макрос кнопке на панели быстрого доступа или самой ленте. Дополнительные сведения о более сложных параметрах развертывания см. в разделе "Дополнительные справочные материалы".
Сводка
В этой статье изучаются возможности Visual Basic для приложений (VBA) в Microsoft Outlook. Благодаря VBA можно автоматизировать повторяющиеся задачи и расширить круг функций Outlook 2010. С помощью реального примера программирования на VBA в этой статье объясняется, как открывать панель инструментов Разработчик, как создавать макросы и как затем их выполнять, изменять и отлаживать. Кроме того, в этом разделе обсуждаются переменные VBA, объектная модель, а также такие функции, как If и For Each.