#0
by Звездочёт
Sub Test1 Dim MAPI As NameSpace Dim oFolder As MAPIFolder Set MAPI = GetNamespace("MAPI") Set oFolder = MAPI.GetDefaultFolder(olFolderInbox) Test2 (oFolder) ' <- Ошибка! Передается строка, вместо объекта End Sub Sub Test2(oFolder) For i = 0 To oFolder.Items.Count ' ... Next End Sub
#1
by 774816
Set oFolder = MAPI.GetDefaultFolder(olFolderInbox) MsgBox TypeName(oFolder) Exit sub Test2 (oFolder) ' <- Ошибка! Передается строка, вместо объекта проверь тип переменной
#2
by Звездочёт
я отладчиком прошел. в строке: Set oFolder = MAPI.GetDefaultFolder(olFolderInbox) получаем объект. А в функцию передается строка. Если объявить процедуру так: Sub Test2(oFolder As MAPIFolder) ' ... End Sub То при вызове пишет, что нужен объект. Вывод: в функцию передается строка, хотя объект есть. Т.е. происходит неявное преобразование типов. А как можно передать объект?
#3
by 774816
введи в процу весь код без передачи Dim MAPI As NameSpace Dim oFolder As MAPIFolder Set MAPI = GetNamespace("MAPI") Set oFolder = MAPI.GetDefaultFolder(olFolderInbox) For i = 0 To oFolder.Items.Count ' ... Next
#4
by 774816
или присовий как объект, а MAPI.GetDefaultFolder(olFolderInbox) точно возвращает объект? Sub Test1 Dim MAPI As NameSpace Dim oFolder As Object Set MAPI = GetNamespace("MAPI") Set oFolder = MAPI.GetDefaultFolder(olFolderInbox) Test2 (oFolder) End Sub Sub Test2(oFolder As Object) For i = 0 To oFolder.Items.Count ' ... Next End Sub End Sub
#5
by Звездочёт
MAPI.GetDefaultFolder(olFolderInbox) точно возвращает объект, т.к. я могу просмотреть его свойства отладчиком и использовать их в коде. Более того, это объект - это папка Входящая. А строка передается "Входящая". предложение не подходит, т.к. теряется смысл процедур, в смысле повторного использования кода.
#6
by 774816
это для проверки объект было предложение, ну если функция MAPI.GetDefaultFolder возвращает объект то почему бы не попробовать так Test2(MAPI.GetDefaultFolder(olFolderInbox)), и если проблемма в передачи объекта то выволиться ошибка типа TYPE MISSMACH не соостветсвия типов, я к сожалению не знаком с объектами аутлук и сужу по коду а не по обектномой модели аутлук
#7
by Звездочёт
ясно. Этот код: Test2(MAPI.GetDefaultFolder(olFolderInbox)) то же самое, что и было. Я пробую разные варианты, но пока ошибку не могу обойти.
#9
by Звездочёт
тоже была мысль, но: 1) Если написать так: Sub Test2(ByRef oFolder) то тоже не работает (передается строка) 2) В справке написано, что ByRef используется по умолчанию.
#10
by Звездочёт
там есть процедура: Sub GetFolderInfo(fldFolder As Outlook.MAPIFolder) значит вопрос в том, как вызвать процедуру.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Открытие формы в VBA
- проблема с отправкой сообщения из VBA через Outlook
- Как прочитать цифровую подпись в письме Outlook средствами vba или vbs?
- Отправка почты из 1С через Outlook сбивает настройки папок в Outlook
- Загрузить исходящие письма из OUTLOOK через COM "Outlook.Application"!
- Знатокам VBA, не работает код VBA Excel при выгрузке из 1С
В этой группе 1С
- Блокировка в пакетном режиме
- СУБД PostgreSQL 8.2 + Платформа 8.0.18.2
- рассылка писем из 1с 7.7 или 8
- Как перебрать реквизиты документа
- RDP через ActiveX
- Как найти коррсепондецию балансового с забалансовым счётом?
- Что такое Microsoft Visual Studio 2005 и чем грозит его удаление с компа?
- Помощник по учету НДС. Что это? Где это?
- 1C8.1 под Linux запускается, но не работает :)
- Подключение к СКЛ из 1С 8.0
- Вызов одной обработки из другой
- v8: Инвентарный учет в УПП какие варианты?
- Узнать количество документов в выборке
- Работа с ФР Штрих-ФРК , конфа рарус альфа авто 4.01....
- Что такое "Регистрация конфигурации изменена"
- Как открыть форму подбора документов за определенный период и по определенн
- Вывод документа в текстовый файл.
- ККМ в режиме фискального регистратора
- Как преобразовать данные из строки к типу реквизита, возможные решения ?
- Привязка поля ввода к отбору построителя отчета