planetz Ответов: 1

Вызов макроса excel при получении почты outlook


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

Что я уже пробовал:

Public Sub db_upload()

    'download file from outlook
    Dim ns As Outlook.Namespace
    Dim inbox As Outlook.MAPIFolder
    Dim mail As Object
    Dim attachmnt As Outlook.Attachment
    Dim fname As String
    Dim docPath As String
    Dim i As Integer
    Dim wsh As Object
    Dim fs As Object
    cnt = 0

    Set ns = GetNamespace("MAPI")
    Set inbox = ns.GetDefaultFolder(olFolderInbox)
    maildt = Format(Now, "dd-mm-yyyy")

    For Each mail In inbox.Items
        On Error Resume Next
        namesender = mail.SenderName
        mailsub = mail.Subject
        maildate = Format(mail.ReceivedTime, "dd-mm-yyyy")

        If InStr(mail.Subject, "something") > 0 And Format(mail.ReceivedTime, "dd-mm-yyyy") = maildt Then
            For Each attachmnt In mail.Attachments
                fname = attachmnt.Filename
                attachmnt.SaveAsFile "path" & attachmnt.Filename
                cnt = cnt + 1
            Next attachmnt
        End If
    Next mail

    Set inbox = Nothing
    Set ns = Nothing
    Set fs = Nothing
    Set wsh = Nothing
End Sub

Richard MacCutchan

Вам нужно что-то в почтовом клиенте, чтобы сигнализировать о получении сообщения.

1 Ответов

Рейтинг:
0

Maciej Los

Вы не можете сделать это только со стороны Excel. Как отметил Ричард Маккатчан в комментарии к этому вопросу, вы должны поймать событие Outtlok, когда приходит новое электронное письмо.
Я бы посоветовал прочитать это: Как обрабатывать входящие сообщения в Microsoft Outlook[^]- метод 3. То же самое вы найдете здесь: Обработка входящих сообщений электронной почты с помощью макросов[^]

Для получения более подробной информации, пожалуйста, смотрите: Ссылка на Outlook VBA[^]