MyTetra Share
Делитесь знаниями!
outlook-vba 2.2 Магазины
Время создания: 09.04.2020 19:32
Текстовые метки: vba_outlook
Раздел: Разные закладки - VBA - Outlook - outlook-vba
Запись: xintrea/mytetra_db_adgaver_new/master/base/1586449545v540nylcbp/text.html на raw.githubusercontent.com

outlook-vba 2.2 Магазины


пример#

Outlook хранит электронные письма, элементы календаря, заметки, задачи и т. Д. В файлах, известных как магазины . Если вы посмотрите на свою панель папок, вы увидите что-то вроде:

Aaaaaaaaaa
  Inbox
  Drafts
  Deleted Items
  :  :

Bbbbbbbbbb
  Inbox
  Drafts
  Deleted Items
  :  :

Cccccccccc
:  :

«Aaaaaaaaaa», «Bbbbbbbbbbb» и «Cccccccccc» - это пользовательские или отображаемые имена магазинов. Я всегда принимал Outlook по умолчанию для этих имен, которые менялись с годами. Когда по умолчанию было мое имя, это мой адрес электронной почты. Имя файла для этих магазинов может быть одинаковым, но с расширением, таким как PST или OST, или может быть чем-то совершенно другим. Макрос VBA нуждается в имени пользователя для доступа к хранилищу и не имеет отношения к именам файлов или расширению.

У вас может быть столько магазинов, сколько пожелаете. У меня есть «файл данных Outlook», который был создан для меня, когда я установил Outlook. Когда я добавил учетные записи для своих адресов электронной почты, Outlook создал новые магазины, названные по адресу электронной почты, такие как «JohnDoe@hotmail.com» и «DoeJohn@gmail.com». Чтобы уменьшить размер моего основного магазина, я сохраняю старые электронные письма в магазинах с такими именами, как «Архив 2015».

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

В приведенных ниже макросах показаны три способа перечисления магазинов, к которым вы можете получить доступ. Я предлагаю вам создать новый модуль для хранения кода ниже и использовать F4 для доступа к свойствам модуля, чтобы вы могли называть его «ModIntro» или другим именем по вашему выбору. Если вы закончите часть 1 этой серии, у вас уже будет такой модуль.

Скопируйте эти макросы в модуль и проверьте, что каждый дает тот же результат.

Sub ListStores1()

  Dim InxStoreCrnt As Integer
  Dim NS As NameSpace
  Dim StoresColl As Folders

  Set NS = CreateObject("Outlook.Application").GetNamespace("MAPI")
  Set StoresColl = NS.Folders

  For InxStoreCrnt = 1 To StoresColl.Count
    Debug.Print StoresColl(InxStoreCrnt).Name
  Next

End Sub
Sub ListStores2()
 
 Dim StoresColl As Stores
 Dim StoreCrnt As Store
 
 Set StoresColl = Session.Stores
 
 For Each StoreCrnt In StoresColl
   Debug.Print StoreCrnt.DisplayName
 Next
 
End Sub
Sub ListStores3()

  Dim InxStoreCrnt As Long

  With Application.Session
    For InxStoreCrnt = 1 To .Folders.Count
      Debug.Print .Folders(InxStoreCrnt).Name
    Next
  End With

End Sub

Вы найдете в VBA, что есть несколько способов достижения такого же эффекта. Выше я показал три метода доступа к магазинам. Вам не нужно их помнить - выберите свой любимый, но вам нужно знать, что существует несколько методов, потому что другие люди, чей код вам может понадобиться учиться, будут иметь разные фавориты.

Переменные StoresColl в макросах ListStores1() и ListStores2() являются коллекциями, но содержат разные типы объектов: « Store и Folder . Объект Store может ссылаться только на файл на вашем диске. Folder может ссылаться на файл на диске, но также может ссылаться на папки в хранилище, такие как «Входящие» и «Отправленные». Stores , Folders , Store и Folder - все это часть объектной модели Outlook. В этой серии учебников вы познакомитесь с моделью, но это не формальное определение. Если вы хотите формальное определение, введите «outlook vba object model» в свою любимую поисковую систему. Убедитесь, что вы смотрите на версию модели VBA.

Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования