Как запланировать извлечение темы Outlook Mailbox в Excel? - PullRequest
0 голосов
/ 15 марта 2020

У меня мало общего почтового ящика в outlook. Я создал VBA в Excel, чтобы извлечь тему письма. Но я должен нажать кнопку «Получить Outlook» в Excel, а затем нажать выбранную папку «Входящие» одну за другой. Есть ли способ, которым я могу запланировать автоматическое извлечение каждой входящей почты вместо того, чтобы щелкать по ней вручную один за другим?

1 Ответ

0 голосов
/ 16 марта 2020

Создание книги с поддержкой макросов, если у вас нет подходящей доступной книги.

В Редакторе VBA нажмите [Инструменты], затем [Ссылки]. Убедитесь, что «Библиотека объектов Microsoft Outlook nn.n» находится вверху и отмечена галочкой. Если он указан, но не отмечен, поставьте галочку в окошке. Если нет в верхней части списка, прокрутите вниз (список в алфавитном порядке c), пока не найдете эту библиотеку, и отметьте ее.

Скопируйте приведенный ниже код в ThisWorkbook. Сохраните книгу и закройте ее.

Откройте книгу, щелкнув по ней или через Windows Планировщик. Список доступных магазинов отображается в качестве демонстрации. Нажмите [OK] для выхода из Excel или [Отмена] для завершения макроса, чтобы вы могли работать с кодом. Предупреждение 1: если вы нажмете [OK], все открытые книги будут закрыты без сохранения изменений. Предупреждение 2: Если у вас нет опции Отмена или эквивалентной, поэтому макрос автоматически закрывает книгу, вы никогда не сможете изменить макрос.

Примечание. Этот код демонстрирует использование события Open Workbook Open для запуска макроса и демонстрацию доступа к Outlook из Excel. Тем не менее, он ничего не делает с Outlook, кроме списка доступных магазинов. Если вам нужна дополнительная демонстрация, я постараюсь помочь.

Option Explicit
Sub Workbook_Open()

  ' Needs reference to "Microsoft Outlook nn.n Object Library" where
  ' nn.n depends on the version of Outlook being used.

  Dim Answer As Long
  Dim Dspl As String
  Dim InxS As Long
  Dim OutApp As New Outlook.Application
  Dim OutNs As Outlook.Namespace

  Set OutNs = OutApp.Session

  ' Build list of all accessible stores
  With OutNs
    Dspl = .Folders(1).Name
    For InxS = 2 To .Folders.Count
      Dspl = Dspl & vbLf & .Folders(InxS).Name
    Next
  End With

  Answer = MsgBox(Dspl, vbOKCancel)

  If Answer = vbCancel Then
    Exit Sub
  End If

  Application.DisplayAlerts = False
  Application.Quit

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...