Страницы: 1
RSS
Обработка писем Outlook из Excel посредством VBA, Совместимость между различными версиями MS Office
 
Подскажите чайнику, пожалуйста.
Вот есть у меня макрос следующего вида
Код
Dim objFolder As Outlook.Folder
Dim objNS As Outlook.Namespace
Dim objMail As Outlook.MailItem
Dim lCounter As Long
Set objNS = Outlook.GetNamespace("MAPI")
Set objFolder = objNS.GetDefaultFolder(olFolderInbox).Folders("Важная папка")
For lCounter = 1 To objFolder.Items.Count
Set objMail = objFolder.Items.Item(lCounter)
{Здесь я получаю информацию различную из objMail такие как дата, время, тема, отправитель, вложения и т.д. и произвожу с ними манипуляции.}
Next
Все это прекрасно работает у меня в Excel 2016 с подключенной библиотекой (т.е.галочку поставил в Tools->References) Microsoft Outlook 16.0 Object Library.
Но, требуется запускать тоже самое и на Excel 2013. Там соответственно библиотека уже не 16.0, а 15.0 и, неизвестно, может и на других версиях офиса придется. Файл могут открыть на разных ПК с разными версиями MS Office. И там, соответственно, все вываливается с ошибкой, что не найдена библиотека 16.0.
Догадываюсь, что можно библиотеку не подключать галочкой, а в макросе что-то переделать. Но, пока, не научился (самоучка).
Подскажите, как все-таки сделать, чтобы работало и на 2016м и на 2013м.
Желательно, прям поправить код, чтобы понятнее было, как работает.
Изменено: Crowner - 27.06.2023 15:21:42
 
Crowner, читайте про позднее связывание. Если его использовать, то никакие "галочки" не потребуются
 
Сохранить вложения из Outlook в указанную папку
там найдете пример того, как обратиться к Outlook через позднее связывание(без ссылки на библиотеку в References).
А здесь чуть больше пояснений что еще надо будет учесть при таком подходе: Как из Excel обратиться к другому приложению
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх