2015-03-19 1 views
0

Я имею в виду, чтобы написать код, который будет применяться в равной степени к объектам olObj класса (типа) либо MailItem, AppointmentItem или MeetingItem. Свойства, которые я буду использовать, являются общими для всех классов (например, Subject).код хорошо для 3-х классов: MailItem, AppointmentItem или MeetingItem

Согласно this, для них нет базового класса. Тем не менее, похоже, что на C# можно что-то сделать.

Есть ли способ сделать это в VBA, кроме повторения кода для каждого класса?

+0

В Outlook «Объект объекта» имеет свойство «Свойство класса». Когда я пишу код, я всегда проверяю это свойство, а затем соответствующим образом меняю присвоение переменной (если это MailItem, TaskItem, MeetingItem и т. Д.). Мне просто интересно, почему вам нужно создать для этого новый класс. Или, может быть, я неправильно понял ваш вопрос. – L42

+0

@ L42 - Это вариант, который может быть полезен для любого случая с двумя комментариями: 1) 'olObj.Class' возвращает' enum' 'OlObjectClass'; его использование может быть менее удобным, чем 'TypeName (olObj)' (или использование 'OlItemType', но я не знаю, как его получить). Например, case 'TypeName (olObj)' = 'MeetingItem' включает в себя несколько случаев« olObj.Class », и каждый должен проверить их все. 2) Я не вижу, как вы «соответствующим образом скорректировали присвоение переменной». Было бы очень интересно, если бы вы могли отправлять код. Я не хочу создавать новый класс. Thanks –

+0

Сообщение Дмитрия очень близко к тому, что я делаю. Но то, что я делал, по-прежнему использует раннее связывание и присваивает Item переменной для своего типа (в зависимости от того, какой класс является тем, что написал Дмитрий). Возможно, есть вероятность, что мы по-прежнему находимся на другой странице, поэтому также может предоставить сценарий или образец повторяющегося кода для каждого класса. – L42

ответ

2

Использовать позднюю привязку (объявить элемент как общий объект) для доступа к общим свойствам, таким как Subject. Доступ к конкретным свойствам типа элемента можно получить, сначала проверив свойство класса (выставленный всеми объектами OOM).

olMail = 43 
olAppointment = 26 
olMeetingRequest = 53 
olMeetingCancellation = 54 
olMeetingResponseNegative = 55 
olMeetingResponsePositive = 56 
olMeetingResponseTentative = 57