|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
Всем доброго времени суток. Мне необходимо с помощью VBA установить связь между MS Outlook и MS Excell. Мне нужно сделать так, что бы после получения определенного письма от определенного отправителя в MS Outlook происходило присвоение определенного значения ячейке книги MS Excell. Есть идеи? Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2010, 12:47 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
glock, Идея есть. Нужно в аутлуке написать обработчик входящей почты, который будет проверять ВСЕ новые сообщения по факту получения почты. И когда дойдет до "определенного письма от определенного отправителя" нужно будет открыть Excel файл и там произвести обновление ячейки. Как Вам идея? Я сам придумал. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2010, 13:07 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
Shamanus, Спасибо. Идея хороша. Но для меня непонятен процесс работы обработчика почты. Является ли его работа фоновой? Как работа этого скрипта будет сопрягаться с другими запускаемыми макросами в Excell? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2010, 13:30 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
glock, В Outlook есть событие - получение новой почты. На это событие вешается обработчик. Ни на кого он влиять не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2010, 13:33 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
Shamanus, А можете немного детальней расписать процесс? Я с Аутлуком весьма на "Вы". Где мне настроить обработку сообщений и последующую реализацию скрипта? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2010, 13:41 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
glock, Запускаете аутлук нажимаете Alt+F11 находите ThisOutlookSession пишите Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2010, 14:14 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
Shamanus, И точно. Спасибо большое! А можно еще несколько вопросов? Как сформулировать условие проверки нового входящего сообщения? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2010, 14:19 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
glock, не понял вопрос. Что значит как сформулировать условие? Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2010, 14:30 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
Shamanus, Почитал msdn.microsoft.com на тему .SenderName. Нашел там пример Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Но MVB ругается. Выдает ошибку run-time 91, Object varieble or With block varieble not set. Ругается на эту строку: "Set myItem = myOlApp.ActiveInspector.CurrentItem" ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2010, 14:56 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
glock, итем не тот выбрали почитайте лучше форум, тут примеров по обработке почты валом. На моей памяти штуки 2-3. Там есть готовые коды. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2010, 15:58 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
Shamanus, я первым делом посмотрел другие топики, но ничего что помогло бы мне не нашел. подскажите, пожалуйста, как правильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2010, 16:02 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
Shamanus, Я этот топик в числе прочих прочитал. В коде, который Вы привели, идет обработка сообщений из определенной папки. Мне же необходимо проверять все входящие сообщения. Как я понял, моя задача найти что-то иное, вместо "ActiveInspector.CurrentItem", который обрабатывает открытое сообщение. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2010, 16:31 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
glockShamanus, Я этот топик в числе прочих прочитал. В коде, который Вы привели, идет обработка сообщений из определенной папки. Мне же необходимо проверять все входящие сообщения. Как я понял, моя задача найти что-то иное, вместо "ActiveInspector.CurrentItem", который обрабатывает открытое сообщение. эта "определённая" папка, как вы выразились, и есть та, что вам нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2010, 16:32 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4.
Кажется таким образом получилось достигнуть необходимого результата ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2010, 16:41 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
glock, the struggle continues Теперь мне нужно каким-то неведомым мне методом заставить Outlook записать данные на определенном листе определенной книги Excell. Поскольку я до этого момента писал скрипты на VBA только для Excell, с ходу реализовать задуманное не получилось :( ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2010, 16:48 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
glockТеперь мне нужно каким-то неведомым мне методом заставить Outlook записать данные на определенном листе определенной книги Excell. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2010, 17:57 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
Надо либо подключить референс на эксель, либо определить EX и WB как Object ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2010, 17:58 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
Спасибо. Код: plaintext
А как установить связь с уже открытым файлом? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2010, 09:37 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
glockА как установить связь с уже открытым файлом? Код: plaintext
Но тут есть нюанс, который я не знаю как обойти. Экселей может быть запущено несколько. Либо в результате того, что пользователь запустит два экселя ЯВНО (через ярлык экселя, а не через открытие книги) или экземляров понаделает другая программа через CreateObject (в том числе невидимых). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2010, 10:01 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
Shocker.Pro, не подскажите, каким образом перебирать книги? как оказалось, опыт VBA в Экселе тут совсем не помогает. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2010, 10:08 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
glockне подскажите, каким образом перебирать книги? как оказалось, опыт VBA в Экселе тут совсем не помогает. Это еще почему не помогает? Все коллекции перебираются одинаково. Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2010, 10:13 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
glock, Вообще не понятно, вроде как Эксель не позволяет открывать сразу две книги с одинаковыми именами, почему нельзя применить что-то типа Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2010, 10:15 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
Shocker.Pro, Спасибо за помощь! Буду пытаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2010, 10:15 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
glockвроде как Эксель не позволяет открывать сразу две книги с одинаковыми именами, Один эксель - да. Зато можно запустить два Экселя. glockпочему нельзя применить что-то типа Код: plaintext
Не Workbook, a Workbooks можно, в принципе, можно даже не делать Select, а просто взять Item и им оперировать. Только надо сделать обработчик ошибок, вдруг книги нет. (впрочем, при работе с СОМ обработчик ошибок нужно делать всегда) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2010, 10:18 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
Вот в таком виде удалось добиться успеха. Может быть кому-то как я такая готовая конструкция поможет. Сам я как ни пытался найти, так и не смог. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Первые две строки закоментированы, так как из за них вылазит ошибка "Compile Error: User-defined type not defined". Но без них работает уверенно. Shocker.Pro, может поможете с обработчиком ошибок? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2010, 10:44 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
glockПервые две строки закоментированы, так как из за них вылазит ошибка "Compile Error: User-defined type not defined". Но без них работает уверенно. Я вам говорил, либо добавьте референс, либо объявите их как object. И хорошо бы использовать Option Explicit это лучше так: Код: plaintext
Обдумайте также, что будет, если книга не открыта (то есть цикл закончился естественным путем) glockShocker.Pro, может поможете с обработчиком ошибок? Курите On Error - примеры в хелпе есть ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2010, 10:51 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
glock, Если придут одновременно 2 письма, то Ваш алгоритм проверит только последнее. А если у Вас еще и не exchange сервер, то вероятность такого события увеличивается в разы. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2010, 11:43 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
Shamanusglock, Если придут одновременно 2 письма, то Ваш алгоритм проверит только последнее. А если у Вас еще и не exchange сервер, то вероятность такого события увеличивается в разы. Почему? Как исправить ситуацию? Перебором всех последних сообщений? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2010, 12:35 |
|
Обработка сообщений MS Outlook
|
|||
---|---|---|---|
#18+
glockПеребором всех последних сообщений?Я другого варианта не смог найти. Но мне кажется есть вариант кошернее и глубины интернета должны его содержать. Просто перебор последних сообщений и поиск по признаку непрочитанное неверно логически. Размер этого пула просто непредсказуем. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2010, 12:41 |
|
|
start [/forum/topic.php?all=1&fid=60&tid=2159174]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 316ms |
total: | 455ms |
0 / 0 |