Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Vba outlook адресная книга

Export Outlook Contacts to Excel with VBA

The VBA Tutorials Blog

Introduction — Export Outlook Contacts to Excel

Use VBA to export your Outlook Contacts to Excel. With VBA macros, you can choose which Outlook Address Book properties you want to export to your Excel spreadsheet.

Once your contacts list is in Excel, you can play sort, filter and play with your data to your hearts content!

Let’s get right to it.

Example — Export Outlook Contacts to Excel

Make powerful macros with our free VBA Developer Kit

Tutorials like this can be complicated. That’s why we created our free VBA Developer Kit to supplement this tutorial. Grab it below and you’ll be writing macros so much faster than you are right now.

Tutorial — Export Outlook Contacts to Excel

Here’s an abridged and censored copy of what my Outlook contacts list looks like when I show it in Excel:

I’m going to make this bold so everyone can see it: This macro runs in Excel — not Outlook. You can modify it to run in Outlook if you’d like, but I designed it to run from Excel. To get the macro to work, you need to add a reference to the Microsoft Outlook Object Library from your Excel VBA Editor.

In the example above, I export your contacts full name, primary email address and cell phone number to a spreadsheet. You can pull different Address Book properties from your contacts list by entering a different property after = olEntry.GetContact . Here are a few of your choices:

There are dozens of contact list properties to choose from!

If your Outlook address book is not titled Contacts , you can change the quoted string in the line that reads:

Set olAL = olNS.AddressLists(«Contacts»)

Exporting from Microsoft Exchange

If you get an error when running the above macro, it’s likely because your contacts are saved via Microsoft Exchange. To export your contact list from the Exchange, run this macro which replaces the For Loop with a Microsoft Exchange compatible loop:

I want to thank readers ChuckD2011 and YasserKhalil for encouraging me to develop this alternate solution.

Application Ideas — Export Outlook Contacts to Excel

Years ago, I exported my Outlook contacts list at work to Excel just to see how big it was. There were 80630 entries at that time. Shocking! If your contacts list is that big, expect this macro to take a long time to run.

Once you get your email addresses in Excel, you can manipulate the data however you like. Because VBA is so powerful, you can choose to send an email to all the email addresses in your contacts list or a subset of your contacts. For example, you can choose to email all the people in your address book with a first name of “Jim.” I’m not sure why you would want to do that, but the point is you can!

It’s not often I feature a macro that interacts with Outlook. As a matter of fact, it’s been over a year since I showed you how to use VBA to search your Outlook emails. Because Outlook posts are so rare, I like to make them worth your time. When you’re ready to take your VBA to the next level, subscribe using the form below.

Oh, and if you have a question, post it in our VBA Q&A community.

The best free VBA training on the web
I see people struggling with Excel every day and I want to help. That’s why I’m giving away my 90-days to Master VBA eCourse and my entire personal macro library for free.

Over 2 million people use our VBA tutorials each year to help automate their work. Are you ready to reclaim your time, too? Grab our VBA Cheat Sheets and you’ll be writing macros like a professional. With over 180 tips and 135 macro examples, they include everything you need to know to become a great VBA programmer.

Добавление или удаление адресной книги

Адресная книга Outlook — это набор адресных книг и списков адресов, созданных на основе папок контактов. С помощью адресной книги можно находить и выбирать имена, адреса электронной почты и списки рассылки при отправке сообщений электронной почты.

Если вы используете Outlook с учетной записью Exchange Server, в адресную книгу будет включен Глобальный список адресов (GAL). Глобальный список адресов содержит имена и адреса электронной почты всех пользователей, имеющих учетную запись на сервере Exchange Server. Он настраивается в Exchange автоматически.

Представлением по умолчанию обычно является глобальная адресная книга.

На вкладке Главная в группе Найти нажмите кнопку Адресная книга.

В поле Адресная книга выберите нужную адресную книгу.

На вкладке Файл выберите Настройка учетных записей > Настройка учетных записей.

В диалоговом окне Настройка учетных записей на вкладке Адресные книги нажмите кнопку Создать.

Примечание: Появится список существующих адресных книг.

Вам будет предложено выбрать один из двух типов адресных книг:

Добавление адресной книги с помощью службы каталогов Интернета (LDAP)

Щелкните Служба каталогов Интернета (LDAP) и нажмите кнопку Далее.

В поле Имя сервера введите имя сервера, предоставленное поставщиком услуг Интернета или системным администратором.

Если указанный сервер защищен паролем, установите флажок Требуется вход на сервер и введите имя пользователя и пароль.

Нажмите кнопку Больше параметров.

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

В группе Сведения о подключении введите номер порта, предоставленный поставщиком услуг Интернета или системным администратором.

Откройте вкладку Поиск и внесите в параметры сервера необходимые изменения.

Если поле База поиска в разделе Параметры поиска не заполнено, введите различающиеся имена, предоставленные администратором.

Нажмите кнопки ОК, Далее и Готово.

Добавление дополнительной адресной книги

Щелкните Дополнительные адресные книги и нажмите кнопку Далее.

Выберите необходимую адресную книгу и нажмите кнопку Далее.

Чтобы использовать добавленную адресную книгу, необходимо закрыть и перезапустить Outlook.

Примечание: Если вы используете Outlook 2016 или Outlook 2013, дополнительные сведения см. в статье Создание адресной книги.

На вкладке Файл выберите Настройка учетных записей > Настройка учетных записей.

На вкладке Адресные книги выберите адресную книгу, а затем нажмите кнопку Удалить.

При первом открытии адресной книги отображается стандартная адресная книга. Если у вас есть учетная запись Microsoft Exchange, обычно это глобальный список адресов. Для учетных записей IMAP, POP3 и других типов чаще всего это адресная книга Outlook. Вы можете изменить стандартную адресную книгу и настроить ее параметры, например указать, в какой адресной книге нужно прежде всего искать адреса при отправке сообщений и где хранить личные адреса.

Чтобы просмотреть другие адресные книги, необходимо выбрать их в списке адресных книг Outlook.

Хотя в Microsoft Office Outlook 2007 теперь невозможно создавать личные адресные книги, вы можете импортировать старые личные адресные книги и преобразовать их. Рекомендуется преобразовать личную адресную книгу в контакты Outlook, которые могут отображаться в адресной книге Outlook. Для контактов Outlook поддерживаются дополнительные возможности и настройки, недоступные для личных адресных книг. Например, вы можете добавлять личные профили для контактов, которые включают дни рождения, номера телефонов, годовщины и адреса веб-сайтов.

Читать еще:  Как узнать айпи адрес чужого вк

Поддерживаются следующие типы адресных книг:

Глобальный список адресов.
Для отображения этой адресной книги необходимо использовать учетную запись Microsoft Exchange Server. Глобальный список адресов содержит имена и адреса электронной почты всех сотрудников организации. Он настраивается автоматически при наличии учетной записи Exchange. Адресную книгу создает и обслуживает администратор Exchange или администратор сети. Она также может содержать адреса электронной почты внешних контактов, списки рассылки, конференц-залов и оборудования. Подмножества глобального списка адресов отображаются в адресной книге при выборе значения в разделе Все списки адресов в списке Адресная книга. Вы можете скачать глобальный список адресов для использования в автономном режиме.

Примечание: Если вы используете Microsoft Office Outlook 2007 с учетной записью Exchange в режиме кэширования, автономная адресная книга по умолчанию загружается и обновляется каждые 24 часа.

Адресная книга Outlook.
Для использования этой адресной книги не требуется учетную запись Exchange. Адресная книга Outlook создается автоматически и содержит записи из стандартной папки Контакты, в которых есть адреса электронной почты или номера факса. Эти контакты отображаются в диалоговом окне Адресная книга при выборе значения Контакты в списке Адресная книга. Если для Outlook используется учетная запись Exchange в режиме кэширования, адресная книга Outlook также доступна автономно.

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

Служба каталогов Интернета (LDAP).
Служба каталогов Интернета используется для поиска электронных адресов, которых нет в локальной адресной книге или корпоративном каталоге, таком как глобальный список адресов. Каталог LDAP подключается к LDAP-серверу через Интернет.

Сторонние адресные книги.
Сторонние адресные книги можно добавить в Outlook с помощью средства настройки их поставщика. Outlook выводит сторонние адресные книги в списке Дополнительные типы адресных книг.

В меню Сервис выберите элемент Настройка учетных записей.

На вкладке Адресные книги нажмите кнопку Создать.

Вам будет предложено выбрать один из двух типов адресных книг. Чтобы добавить адресную книгу нужного типа, выполните одно из следующих действий:

Добавление адресной книги с помощью службы каталогов Интернета (LDAP)

Щелкните Служба каталогов Интернета (LDAP) и нажмите кнопку Далее.

В поле Имя сервера введите имя сервера, предоставленное поставщиком услуг Интернета или системным администратором.

Если указанный сервер защищен паролем, установите флажок Требуется вход на сервер и введите имя пользователя и пароль.

Нажмите кнопку Больше параметров.

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

В группе Сведения о подключении введите номер порта, предоставленный поставщиком услуг Интернета или системным администратором.

Откройте вкладку Поиск и внесите в параметры сервера необходимые изменения.
Параметр «Времени ожидания поиска» определяет количество секунд, в течение которого Outlook выполняет поиск в каталоге LDAP для разрешения имен в сообщении. Вы также можете ограничить количество имен, которые выводятся в результатах поиска по адресной книге.

Если поле База поиска в разделе Параметры поиска не заполнено, введите различающиеся имена, предоставленные администратором.

Нажмите кнопки ОК, Далее и Готово.

Добавление дополнительной адресной книги

Щелкните Дополнительные адресные книги и нажмите кнопку Далее.

Выберите необходимую адресную книгу и нажмите кнопку Далее.

Чтобы использовать добавленную адресную книгу, необходимо закрыть и перезапустить Outlook.

Примечание: Если вы хотите добавить имена или адреса в адресную книгу, см. статью Добавление пользователей в адресную книгу. Сведения о том, как изменить адресную книгу, см. в статье Изменение записей адресной книги.

В меню Сервис выберите элемент Настройка учетных записей.

На вкладке Адресные книги выберите адресную книгу, которую вы хотите удалить.

Как из Outloоk читать информацию

Такая значит проблема-задача.

Как из Outloоk читать информацию (из адресной книги).
И вообще, как там вызвать справку по VBA функциям

Заранее благодарен и т.д.

8 ответов

Originally posted by gacol
Такая значит проблема-задача.

Как из Outloоk читать информацию (из адресной книги).
И вообще, как там вызвать справку по VBA функциям

Заранее благодарен и т.д.

Я уже писал в пред. сообщении: http://forum.codenet.ru/showthread.php?s=&threadid=10284
как можно из любой оффисной программы обратиться по OLE к объектной модели соответственно другой оф. проги. В самом Outlook тоже свой редактор есть (как и в Excel, Word), пиши не хочу.

Главное не забыть подключить в References библиотеку: например Microsoft Outlook 10 Object Library.

После этого в списке объектов (например после As) сразу увидишь и Outlook объекты. пиши их, ставь курсор и нажимай F1 вот тебе и справка по VBA Outlook (она же, ввиде файла chm хранится под таким названием — Vbaol10.chm, ну или 9, от версии офиса зависит)

Главное это в объектной модели Outlook разобраться, сам помню неделю ковырялся прежде чем смог обратиться к нужной подпапке во Входящих и найти там письмо, почитать его, а потом еще переслать, если надо. 🙂

Я уже писал в пред. сообщении: http://forum.codenet.ru/showthread.php?s=&threadid=10284
как можно из любой оффисной программы обратиться по OLE к объектной модели соответственно другой оф. проги. В самом Outlook тоже свой редактор есть (как и в Excel, Word), пиши не хочу.

Главное не забыть подключить в References библиотеку: например Microsoft Outlook 10 Object Library.

После этого в списке объектов (например после As) сразу увидишь и Outlook объекты. пиши их, ставь курсор и нажимай F1 вот тебе и справка по VBA Outlook (она же, ввиде файла chm хранится под таким названием — Vbaol10.chm, ну или 9, от версии офиса зависит)

Главное это в объектной модели Outlook разобраться, сам помню неделю ковырялся прежде чем смог обратиться к нужной подпапке во Входящих и найти там письмо, почитать его, а потом еще переслать, если надо. 🙂

Спасибо за помощь.
Я то как раз вдохновился твоим первым сообщением и сделал автопоздравлялку. Только заполнить ее хотел эл.адресами из Global Address List да не охота было ковыряться разбирать как и тебе в свое время. Но ты меня вдохновил и второй раз (на ковыряние). F1 все объясняет.
А вообще через Outlook я сделаю автообновлялку для программ. С нашими сетями это намного проще. Без твоих сообщений как то и не думал в этом направлении.

Спасибо за помощь.
Я то как раз вдохновился твоим первым сообщением и сделал автопоздравлялку. Только заполнить ее хотел эл.адресами из Global Address List да не охота было ковыряться разбирать как и тебе в свое время. Но ты меня вдохновил и второй раз (на ковыряние). F1 все объясняет.
А вообще через Outlook я сделаю автообновлялку для программ. С нашими сетями это намного проще. Без твоих сообщений как то и не думал в этом направлении.

Ну с Global Address List ты ушел вперед меня, мне это на первых порах не нужно было (другие задачи стояли) поэтому Global Address List я даже и не трогал.
Хотя в будущем для своей проги планирую определ. проверку через Global Address List, а то сейчас она у меня сначала пытается отправить и если адреса такого нет, то письмо просто не отправляется, возникает ошибка — обрабатывается, ставится пометка, что письмо не ушло.

Кстати, это вообще хорошая идея, надо бы сделать так, чтобы в своей базе(Access) была возможность вызвать адресную книгу, там в принципе она сама должна заполнять поле с адресом(из пришедших писем), но иногда требуется вмешательство человека и тогда уже ему приходится в текстовом поле ручками писать/редктировать. что вообщем-то не так удобно.. 🙂

Читать еще:  String join words toarray

Да кстати, не забудь еще посмотреть справочку на тему:

Public WithEvents myOlApp As Outlook.Application
— без этой штуки моя база была бы абсолютно бесполезной.

Там в справке есть целая глава как описать свой: EventClassModule и с помощью него получить доступ к событиям Outlook из своей проги.
Для некоторых задач, это просто необходимо (например, если ты хочешь чтобы твоя прога мониторила приходящую почту)

Ну с Global Address List ты ушел вперед меня, мне это на первых порах не нужно было (другие задачи стояли) поэтому Global Address List я даже и не трогал.
Хотя в будущем для своей проги планирую определ. проверку через Global Address List, а то сейчас она у меня сначала пытается отправить и если адреса такого нет, то письмо просто не отправляется, возникает ошибка — обрабатывается, ставится пометка, что письмо не ушло.

Кстати, это вообще хорошая идея, надо бы сделать так, чтобы в своей базе(Access) была возможность вызвать адресную книгу, там в принципе она сама должна заполнять поле с адресом(из пришедших писем), но иногда требуется вмешательство человека и тогда уже ему приходится в текстовом поле ручками писать/редктировать. что вообщем-то не так удобно.. 🙂

Еще вопросик в тему, чтобы два раза шашку не вытирать.

В AddressEntries я нашел Address(там и вырезал e-mail) и Name(русские ФИО). Но в Outlook’e сидят и другие полезные параметры: тел.факс.
Смотрел структуру Wathes, но там ничего не обнаружил. Если знаешь или наткнешся позже, сообщи bitte.
И еще (я с этим всем возился в Excel), если в глобальном списке не находился адресат по фамилии, то ошибка не сообщалась, а выдавался кто-то по первым двум буквам, например вместо Кудрявцева — Кузовкин (может где-то в параметрах сидит приблизительный поиск?).

13. Программирование в Outlook

13.1 Зачем программировать в Outlook

Создание приложений VBA в Outlook, типичные ситуации, примеры приложений

Outlook (вместе с его урезанной версией, которая называется Outlook Express) — самая распространенная программа для работы с электронной почтой. Однако важность его заключается не только в возможности отправки и получения электронных сообщений. На предприятиях очень большую ценность представляют его дополнительные возможности, которые помогают делать то, что Microsoft называет задачами персонального информационного менеджера (Personal Information Manager, PIM).

Первая такая задача — это работа с календарем, то есть организация времени пользователя. Календарь тесно интегрирован с другими элементами Outlook (например, Контактами и Задачами), а также с внешними приложениями (например, Microsoft Project). На предприятиях часто используется назначение задач пользователям, когда такие задачи автоматически появляются как элементы Календаря. Если пользователь самостоятельно заносит свои задачи в Outlook, то можно (если почтовый ящик пользователя лежит на сервере Exchange Server) предоставить доступ к календарю этого пользователя его менеджерам. Менеджеры смогут видеть, какие задания есть в настоящий момент у этого пользователя, что позволит избежать ситуаций, когда задание выдается сотруднику, уже занятому важной работой.

У Календаря есть еще одна замечательная возможность: если вы создадите из Outlook на сервере Exchange общую папку с элементами типа Календарь, в вашем распоряжении будет готовое приложение для планирования совместного доступа к ресурсам (комнатам для переговоров, проекторам, разному оборудованию и т.п.). Например, предположим, что в вашей организации принято правило: все личное общение с клиентами должны производиться только в комнате для переговоров, а количество этих комнат ограничено. Вполне может получиться ситуация, когда клиент придет, а все комнаты будут заняты. Чтобы этого не произошло, используется общая папка с элементами управления типа Календарь. В процессе общения с клиентом пользователь открывает из Outlook такую общую папку и смотрит, в какое время комната свободна. Согласовав с клиентом время визита, он создает в этой общей папки элемент типа Встреча — и уже другие сотрудники смогут понять, что в это время комната для переговоров занята.

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

Вторая задача — это работа с контактами. Контакты Outlook — это, видимо, наиболее распространенный и стандартный формат адресной книги. В последнее время особенно важным стало то, что контакты из адресной книги Outlook можно очень легко и просто синхронизировать с сотовыми телефонами, наладонными компьютерами и прочими аналогичными устройствами. На предприятиях часто используется, например, общий список контактов для подразделения в виде элементов Контакт, которые хранятся в общей папке Exchange Server (адресная/телефонная книга самой организации обычно ведется в формате адресной книги Exchange Server и также доступна через Outlook). Ситуаций, когда вам нужно программным образом создавать контакты (например, на основе информации из базы данных), или синхронизировать их, или пройти циклом по всем контактами и изменить их в зависимости от какого-то условия — очень много.

Третья задача — это работа с задачами и поручениями. Для масштабных проектов, конечно, лучше использовать специализированное программное обеспечение (например, Microsoft Project и Project Server), но для простых проектов, за которые ответственен один менеджер, задачи Outlook вполне подойдут. При помощи этого средства можно создавать задачи, назначать их другим лицам (поручения) с уведомлением их по электронной почте, отслеживать процент выполнения и т.п.

Четвертая задача — работа с дневником. При помощи этого средства вы можете отслеживать работу с документами Office, обмен информацией при помощи Outlook и т.п. Дневник позволяет создать отчет о проделанной работе или вспомнить, в каком файле находится нужный документ за прошлый квартал — чтобы по образцу его сделать новый документ.

Есть еще работа с заметками — компьютерными аналогами маленьких липких листочков с напоминаниями, которыми некоторые любители обклеивают все вокруг себя.

Конечно же, вышеперечисленными встроенными возможностями работа с Outlook не ограничивается. На связке Outlook — Exchange Server основана целая область программирования, которая называется collaboration development — разработка приложений коллективного использования. Основные задачи, которые решаются при помощи приложений коллективного использования — сбор и автоматизированная обработка внутрикорпоративной информации. Например, представим себе следующую задачу из реальной жизни: каждый банк в конце каждого месяца должен представить в Центральный банк информацию об экономических нормативах. Чаще всего это выглядит так: сотрудник планово-экономического отдела, ответственный за сбор информации, в начале каждого месяца идет в бухгалтерию, чтобы получить информацию об остатках на требуемых счетах на конец месяца. Затем он отправляется в кредитный отдел, чтобы получить информацию о том, какие кредиты относятся к какой категории. После этого он руками формирует файл отчета требуемого формата. При использовании средств Outlook это могло бы выглядеть по другому:

  • В начале месяца у сотрудника планово-экономического отдела в папке Входящие в Outlook автоматически появляется специальная форма для заполнения информация о нормативах;

Он нажимает на кнопку Отправить в бухгалтерию на этой форме, и форма отправляется ответственному сотруднику бухгалтерии (а может быть, автоматически получает информацию об остатках на счетах из программы «Операционный день» — если разработчик сможет это реализовать);

Сотрудник бухгалтерии, заполнив нужные поля, нажимает на кнопку Дальше и форма с сохраненными данными идет в кредитный отдел;

Сотрудник кредитного отдела заполняет свои поля (поля, заполненные в бухгалтерии, при этом автоматически доступны только на чтение) и нажимает на кнопку Дальше.

Форма со всеми необходимыми данными приходит к сотруднику планово-экономического отдела, тот нажимает на ней на кнопку Сформировать отчет — и формируется файл отчета в нужном формате, а форма с сохраненными значениями автоматически помещается в архив.

Читать еще:  Стиль списка литературы word

На любом предприятии задач по сбору внутрикорпоративной информации очень много. Можно привести в пример и отчеты о командировках, и сбор информации из филиалов, и формы, заполняемые продавцами (в офисе и в командировках), и информацию инвентаризаций — этот перечень можно продолжать бесконечно. И, как показывает практика, самый удобный способ — это именно применение средств Outlook/Exchange Server. Большим плюсом здесь является то, что никаких внешних средств разработки использовать не нужно: Outlook — это еще и среда разработки. Например, чаще всего в подобных приложениях используются формы Outlook — специальные шаблоны сообщений с элементами управления и программными возможностями, например, маршрутами прохождения (эти формы ни имеют никакого отношения к обычным формам V BA или формам Access). Создать такую форму и придать ей необходимый программный код можно средствами самого Outlook: для этого достаточно в меню Сервис -> Формы воспользоваться пунктом Конструктор форм, выбрать нужную форму (например, Сообщение в Библиотеке стандартных форм) и нажать на кнопку Открыть. Откроется окно дизайнера форм (см. рис. 13.1), в котором вы сможете изменять шаблон стандартного сообщения, как вам угодно: помещать новые элементы управления, привязывать к ним программный код (при помощи меню Форма -> Просмотреть код) и т.п.

Рис. 13.1 Окно конструктора форм Outlook

Например, добавить код для нашей кнопки CommandButton1, которую мы поместили на форму, можно так:

  • В меню Сервис выбираем Просмотреть код (вместо этого можно воспользоваться кнопкой Просмотреть код на панели инструментов);

В окне редактора сценариев пишем следующий код:

MsgBox «Привет из формы Outlook»

Да, к сожалению, автоматически сгенерировать событийную процедуру для кнопки не получится. Нет в нашем распоряжении и подсказок Intellisense, и подсветки синтаксиса, и отладки, и многого другого.

Чтобы запустить нашу кнопку на выполнение, воспользуйтесь командой Выполнить форму в меню Форма, а затем нажмите на нашу кнопку.

Как вы уже, наверное, догадались, это — не совсем привычный нам VBA (скажем больше, это — вообще другой язык программирования VBScript). Для форм Outlook предусмотрена своя собственная среда программирования, своя объектная и событийная модели. Как правило, работа с формами Outlook неотделима от работы с корпоративными возможностями Exchange Server: библиотеками форм, серверными скриптами, общими папками, маршрутизацией и т.п. Все это — очень большая специальная тема, которая потребует для рассмотрения отдельной толстой книги. По этой причине работу с формами Outlook и приложениями коллективного использования мы рассматривать не будем. Скажем только, что хорошей отправной точкой для самостоятельного освоения этой темы может послужить файл официальной документации Microsoft, который по умолчанию находится в каталоге Office по пути C:Program FilesMicrosoft OfficeOFFICE111049OLFM10.CHM и сайт www.slipstick.com. В этой книге мы сосредоточимся на работе с Outlook традиционными средствами VBA — при помощи стандартных модулей и форм VBA, в привычном редакторе кода. Задач автоматизации, которые решаются средствами VBA, также очень много:

  • организация рассылки электронной почты по расписанию;
  • получение электронной почты и ее автоматизированная обработка (например, если сообщение пришло в стандартном формате, можно извлечь из него данные и поместить в базу данных), к примеру, сбор данных из филиалов;
  • автоматизация работы с контактами — например, импорт контактов из базы данных или файла Excel в общую папку на сервере Exchange;
  • автоматическое создание или изменений записей в календаре;
  • и многое-многое другое.

Работать с этими возможностями Outlook нам и предстоит научиться.

Как вытащить из адресной книги Outlook на основе значений в Excel (VBA)

December 2018

29.5k раз

У меня есть следующий код, который работает (я нашел его на форуме):

Когда я обеспечиваю одно имя (первый или последний) он ищет его в адресной книге и возвращает имя и фамилию этого человека, он нашел.

Я хочу, чтобы обеспечить предприятия идентификатор человека, у него ищет это, а затем вернуть другую информацию (местонахождение, номер телефона и т.д.).

Я не могу понять, как сделать это. Прежде всего, я не знаю, как прогноз знает искать только псевдоним, насколько я могу сказать, что это только декларировала в локальных переменных. Кроме того, когда я пытаюсь вытащить другую информацию, например:

Я получаю сообщение об ошибке: Объект не поддерживает это свойство или метод. Я не знаю, что это свойство будет называться — я не мог найти какой-либо DOC онлайн, который показал, как свойства названы (даже когда я искал MAPI docuemntation).

Итак, мой вопрос — как я могу использовать этот код для поиска по ID и возвращать другие свойства, такие как расположение, число и т.д. Кроме того, — как я могу обобщить этот процесс — есть список того, что называют эти имена полей, есть ли способ создания списка?

2 ответы

Давайте посмотрим, если это может помочь вам. Я не эксперт с Outlook, VBA, но это в основном то же самое, и только вопрос найти в документации.

Добавить эту страницу в закладки:

В частности , то вы можете посмотреть на запись для AddressEntry объекта:

И оттуда вы можете увидеть список доступных свойств / методов. Я считаю , что должно ответить на ваш второй вопрос, я получаю сообщение об ошибке: Объект не поддерживает это свойство или метод. Я не знаю , что это свойство будет называться .

Homestate не является свойством AddressEntry объекта.

Когда я обеспечиваю одно имя (первый или последний) он ищет его в адресной книге и возвращает имя и фамилию этого человека, он нашел.

Не стоит ожидать, что это 100% надежность

Я испытал это с 6 имен и получил 4 из них прав. 3 были редкие фамилии. Один из них был полным именем, которое неожиданно вернулось неправильные результаты. Ваш пробег может варьироваться.

Это не будет работать для любой крупной организации. Если у вас есть небольшой список адресов, то, возможно, легко однозначно решить на основе простой первой / последней строки имени. Но в противном случае, это не является надежным.

У вас есть несколько вопросов:

Я хочу, чтобы обеспечить предприятия идентификатор человека, у него ищет это, а затем вернуть другую информацию (местонахождение, номер телефона и т.д.).

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

Я не знаю, как прогноз знает искать только псевдоним, насколько я могу сказать, что это только декларировала в локальных переменных.

AliasName был локальной переменной в коде примера, но ей присваивается значение из пользовательского ввода (ячеек в электронной таблице Excel, например). Таким образом, макрос читает в некоторых значениях и пытается решить их с адресной книгой.

Как я уже говорил выше, это только так хорошо , как вероятность того , что простая строка будет однозначно решить для правильного человека.

Кроме того, когда я пытаюсь вытащить другую информацию, например:

Я получаю сообщение об ошибке: Объект не поддерживает это свойство или метод. Я не знаю, что это свойство будет называться — я не мог найти какой-либо DOC онлайн, который показал, как свойства названы (даже когда я искал MAPI docuemntation).

Может ли быть лучшее решение .

Если покопаться в объектной модели, вы найдете две вещи , которые выглядят многообещающими, GetContact метод , который возвращает ContactItem (к сожалению , это не то , что мы хотим), и GetExchangeUser который возвращает ExchangeUser . Я думаю , что это ближе всего к тому , что вы хотите, так как он содержит большую часть информации , которую вы ищете.

Ссылка на основную публикацию
Adblock
detector