В MS Outlook (2016) я работаю над процедурой VBA для более быстрого архивирования определенных, индивидуально выбранных электронных писем в определенные папки в моем архиве электронной почты.
У меня есть процедура, которая выполняетхитрость, когда я обращаюсь к целевой папке вручную:
'[...]
Dim MoveToFolder As Outlook.MAPIFolder
'[...]
Set MoveToFolder = ns.Folders("Archive").Folders("Projekte-Archiv").Folders("P03_NetRef")
'[...]
С этим процедура знает, в какую папку перемещать предварительно выбранную электронную почту.
Теперь моя проблема:
Я пытаюсь установить объект папки «MoveToFolder» через строковую переменную , предоставляя ему все необходимые данные.
Почему я хочу это сделать: передача данных папки в виде строковой переменной позволила бы мне использовать одну и ту же процедуру для любого количества папок на любом количестве уровней иерархии, которые я хочу.
Здесьэто то, что я придумал, используя функцию CType:
'[...]
Dim MoveToFolder As Outlook.MAPIFolder
'[...]
Set MoveToFolder = CType("ns.Folders(""Archive"").Folders(""Projekte-Archiv"").Folders(""P03_NetRef"")", Outlook.MAPIFolder)
'[...]
(Идея, конечно, в следующем шаге вставить строку через переменную, а не в простом написании, как в примере.)
Это не работает.Тип объекта «Outlook.MAPIFolder» приводит к ошибке при компиляции («метод или объект данных не найден»).
Позже
Как я понял позжефункция CType () недоступна в VBA (в отличие от VB.net).