Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2015, 19:20   #1
theoldmelnik
 
Регистрация: 04.03.2015
Сообщений: 6
Вопрос Сканирование почтовых ящиков в Outlook

День добрый,

при написание макроса, возникла проблема...
Вообщем:
Есть Outlook 2007 в нем разные почтовые ящики(допустим- проект А, группа 49 и так далее названия разные) помимо дефолтного,
как получить доступ к определенному ящику я знаю, но проблема в том что макрос будут использовать разные люди с разными ящиками и вот тут проблема. как можно средствами VBA или C# определить какие ящики есть и получить доступ к письмам в них для дальнейшей работы...

Буду благодарен за любую подсказку и помощь !

Всем добра и много Чегото " Dim Чегото As выберайте сами " ))))
theoldmelnik вне форума Ответить с цитированием
Старый 11.03.2015, 08:47   #2
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию

Добрый день!
Посмотрите здесь
http://www.askit.ru/custom/vba_offic...der_object.htm

По осени писал макрос для проверки почтового ящика "Входящие", извлечения из новых писем вложения в формате PDF и распечатывания на принтере. Для доступа к папке входящие использовал вот такой код

Set myFolder = Outlook.Application.GetNamespace("M API").GetDefaultFolder(olFolderInbo x)

Подскажите, пжл, как Вы подключаетесь к какой-то конкретной папке?
27102014 вне форума Ответить с цитированием
Старый 11.03.2015, 10:13   #3
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Например, так
Код:
Set inbox = oNamespace.Folders(1).Folders("Сотрудники").Folders("Галустян")
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 12.03.2015, 12:04   #4
theoldmelnik
 
Регистрация: 04.03.2015
Сообщений: 6
По умолчанию

Цитата:
Сообщение от alex77755 Посмотреть сообщение
Например, так
Код:
Set inbox = oNamespace.Folders(1).Folders("Сотрудники").Folders("Галустян")
Данный вариант мне известен но, он предпологает прописывать папки, а я не знаю какие будут папки. так что макрос должен сам находить все почтовые ящики на аккаунте пользователя.
theoldmelnik вне форума Ответить с цитированием
Старый 12.03.2015, 12:09   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
Данный вариант мне известен
в таком случае Вам должно быть известно, что к элементу коллекции можно обратиться по имени или по индексу (номеру)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 12.03.2015 в 12:12.
IgorGO вне форума Ответить с цитированием
Старый 12.03.2015, 12:58   #6
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Цитата:
Подскажите, пжл, как Вы подключаетесь к какой-то конкретной папке?
Этот вопрос подразумевает, что имя конкретной папки известно.
Ставьте вопросы корректней
Перебрать все папки
Код:
Sub QWERT()
Dim oNamespace As Outlook.NameSpace
Dim inbox As Outlook.MAPIFolder
Dim MyFol As Outlook.MAPIFolder
Dim oOutlook As New Outlook.Application

Set oNamespace = oOutlook.GetNamespace("MAPI")

For Each MyFol In oNamespace.Folders ' перебор всех папoк
    Debug.Print MyFol.Name
    For Each inbox In MyFol.Folders  ' перебор всех папoк
        Debug.Print inbox.Name
    Next
Next
End Sub
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 12.03.2015, 13:43   #7
theoldmelnik
 
Регистрация: 04.03.2015
Сообщений: 6
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
в таком случае Вам должно быть известно, что к элементу коллекции можно обратиться по имени или по индексу (номеру)
а как программно определить это индекс или номер?
theoldmelnik вне форума Ответить с цитированием
Старый 12.03.2015, 13:52   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

to folders.count
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 18.03.2015, 10:36   #9
theoldmelnik
 
Регистрация: 04.03.2015
Сообщений: 6
По умолчанию Спасибо

Цитата:
Сообщение от alex77755 Посмотреть сообщение
Этот вопрос подразумевает, что имя конкретной папки известно.
Ставьте вопросы корректней
Перебрать все папки
Код:
Sub QWERT()
Dim oNamespace As Outlook.NameSpace
Dim inbox As Outlook.MAPIFolder
Dim MyFol As Outlook.MAPIFolder
Dim oOutlook As New Outlook.Application

Set oNamespace = oOutlook.GetNamespace("MAPI")

For Each MyFol In oNamespace.Folders ' перебор всех папoк
    Debug.Print MyFol.Name
    For Each inbox In MyFol.Folders  ' перебор всех папoк
        Debug.Print inbox.Name
    Next
Next
End Sub
Спасибо огромное, немного переработал код и получилось то что надо !!!!
theoldmelnik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Печать на почтовых конвертах с ReportViewer PsihoBolt C# (си шарп) 5 06.06.2013 11:40
число ящиков на складе ololo-schoolboy Общие вопросы C/C++ 0 12.03.2011 21:49
Спам ящиков чтоб найти работу! Rebel123 Общие вопросы Delphi 7 22.09.2009 22:16