Как из Outloоk читать информацию
Как из Outloоk читать информацию (из адресной книги).
И вообще, как там вызвать справку по VBA функциям
Заранее благодарен и т.д.
Такая значит проблема-задача.
Как из 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) была возможность вызвать адресную книгу, там в принципе она сама должна заполнять поле с адресом(из пришедших писем), но иногда требуется вмешательство человека и тогда уже ему приходится в текстовом поле ручками писать/редктировать.... что вообщем-то не так удобно.. :-)
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), если в глобальном списке не находился адресат по фамилии, то ошибка не сообщалась, а выдавался кто-то по первым двум буквам, например вместо Кудрявцева - Кузовкин (может где-то в параметрах сидит приблизительный поиск?).
........
И еще (я с этим всем возился в Excel), если в глобальном списке не находился адресат по фамилии, то ошибка не сообщалась, а выдавался кто-то по первым двум буквам, например вместо Кудрявцева - Кузовкин (может где-то в параметрах сидит приблизительный поиск?).
какой функцией искал?
какой функцией искал?
If fio$ = UCase(myGEntries(fio$).Name) Then
e_mail$ = myGEntries(fio$).Address
Cells(i, 1) = Mid(e_mail$, InStrRev(e_mail$, "=") + 1)
End If
какой функцией искал?
использовал свойства Address
сначала просто
e_mail$ = myGEntries(fio$).Address
потом проверял на точность имена
If fio$ = UCase(myGEntries(fio$).Name) Then
e_mail$ = myGEntries(fio$).Address
End If