2014-12-06 1 views
1

Я пишу код в MS Outlook для обработки входящих писем.Синтаксис CallByName Outlook VBA

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

Затем, исходя из результата этого условного оператора, предполагается, что код должен прочитать соответствующее свойство объекта MailItem.

Я хочу использовать функцию CallByName для достижения этой цели.

x = CallByName(itm, PAN_Source, VbGet) 

Где ITM 'является объектом MailItem, переменная «PAN_Source» содержит строку, которая относится к специфическому свойству от «ITM».

Например, если входящая почта имеет вложение, то «PAN_Source» присваивается значение «Attachments.Item (1) .DisplayName». Я хочу, чтобы CallByName (itm, PAN_Source, VbGet) возвращал itm.Attachments.Item (1) .DisplayName

Outlook VBA просто прекращает выполнение на этом этапе выполнения.

Вы можете помочь в определении ошибки в коде выше?

Благодаря

ответ

0

CallByName функция принимает следующие аргументы:

  • Имя объекта, на котором функция будет выполнена.
  • Строковое выражение, содержащее имя свойства или метода объекта.
  • Константа типа vbCallType, представляющая тип вызываемой процедуры.
  • Аргументы (необязательно).

Я пытаюсь использовать следующие вместо:

Call CallByName("itm", PAN_Source, VbGet)

Вы можете найти Getting Started with VBA in Outlook 2010 статью полезной.

+0

Не работает. Дает ошибку несоответствия типа. Если конкретно требуется, чтобы объект был предоставлен, а не имя объекта. –

+1

Для второго аргумента попробуйте передать строку, которая представляет собой простое свойство объекта без нескольких точек. Например, передайте имя свойства. –

 Смежные вопросы

  • Нет связанных вопросов^_^