powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Обработка сообщений MS Outlook
5 сообщений из 30, страница 2 из 2
Обработка сообщений MS Outlook
    #36996585
glock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот в таком виде удалось добиться успеха. Может быть кому-то как я такая готовая конструкция поможет. Сам я как ни пытался найти, так и не смог.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Sub Application_NewMail()
    'Dim EX As Excel.Application
    'Dim WB As Excel.Workbook

    Set myOlApp = CreateObject("Outlook.Application")
    Set myNameSpace = myOlApp.GetNamespace("MAPI")
    Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox)
    Set myItem = myFolder.Items( 1 )
    
    SenderName = myItem.SenderName
    If SenderName = "IBSO" Or SenderName = "" Then
        
        Set XL = GetObject(, "Excel.Application")
        For Each WB In XL.Workbooks
            If WB.Name = "Книга1.xls" Then GoTo  111 
        Next
 111 
        WB.Worksheets("Лист1").Cells( 1 ,  1 ) = "данные"
    End If
End Sub

Первые две строки закоментированы, так как из за них вылазит ошибка "Compile Error: User-defined type not defined". Но без них работает уверенно.

Shocker.Pro, может поможете с обработчиком ошибок?
...
Рейтинг: 0 / 0
Обработка сообщений MS Outlook
    #36996603
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glockПервые две строки закоментированы, так как из за них вылазит ошибка "Compile Error: User-defined type not defined". Но без них работает уверенно.
Я вам говорил, либо добавьте референс, либо объявите их как object.
И хорошо бы использовать Option Explicit

это лучше так:
Код: plaintext
If WB.Name = "Книга1.xls" Then Exit For

Обдумайте также, что будет, если книга не открыта (то есть цикл закончился естественным путем)

glockShocker.Pro, может поможете с обработчиком ошибок?
Курите On Error - примеры в хелпе есть
...
Рейтинг: 0 / 0
Обработка сообщений MS Outlook
    #36996746
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glock,
Если придут одновременно 2 письма, то Ваш алгоритм проверит только последнее. А если у Вас еще и не exchange сервер, то вероятность такого события увеличивается в разы.
...
Рейтинг: 0 / 0
Обработка сообщений MS Outlook
    #36996885
glock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shamanusglock,
Если придут одновременно 2 письма, то Ваш алгоритм проверит только последнее. А если у Вас еще и не exchange сервер, то вероятность такого события увеличивается в разы.
Почему? Как исправить ситуацию? Перебором всех последних сообщений?
...
Рейтинг: 0 / 0
Обработка сообщений MS Outlook
    #36996909
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glockПеребором всех последних сообщений?Я другого варианта не смог найти. Но мне кажется есть вариант кошернее и глубины интернета должны его содержать. Просто перебор последних сообщений и поиск по признаку непрочитанное неверно логически. Размер этого пула просто непредсказуем.
...
Рейтинг: 0 / 0
5 сообщений из 30, страница 2 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Обработка сообщений MS Outlook
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]