Поделиться через


Событие MailItem.Open (Outlook)

Происходит при открытии экземпляра родительского объекта в инспекторе.

Синтаксис

expression. Открыть (отмена)

Выражение Переменная, представляющая объект MailItem .

Параметры

Имя Обязательный или необязательный Тип данных Описание
Отмена Обязательный Boolean (Не используется в VBScript). Значение false при возникновении события. Если процедура события задает этому аргументу значение True, операция открытия не завершена и инспектор не отображается.

Замечания

При возникновении этого события объект Inspector инициализируется, но еще не отображается. Событие Open отличается от события Read тем, что чтение происходит каждый раз, когда пользователь выбирает элемент в представлении, поддерживающем редактирование в ячейках, а также при открытии элемента в инспекторе.

В Microsoft Visual Basic Scripting Edition (VBScript) если для возвращаемого значения этой функции задано значение False, операция открытия не будет завершена и инспектор не отображается.

Пример

В этом примере Visual Basic для приложений (VBA) событие Open используется для отображения страницы "Все поля" при каждом открытии элемента.

Public WithEvents myItem As Outlook.MailItem 
 
 
 
Sub Initialize_handler() 
 
 Set myItem = Application.Session.GetDefaultFolder(olFolderInbox).Items(1) 
 
 myItem.Display 
 
End Sub 
 
 
 
Private Sub myItem_Open(Cancel As Boolean) 
 
 myItem.GetInspector.SetCurrentFormPage "All Fields" 
 
End Sub

В этом Visual Basic для приложений примере свойство Unread используется для определения того, был ли элемент прочитан ранее. Если это так, то он спрашивает, хочет ли пользователь открыть его. Если пользователь ответит Нет, возвращаемое значение будет равно False , чтобы предотвратить открытие элемента.

Public WithEvents myItem As Outlook.MailItem 
 
 
 
Sub Initialize_handler() 
 
 Set myItem = Application.Session.GetDefaultFolder(olFolderInbox).Items(1) 
 
 myItem.Display 
 
End Sub 
 
 
 
Private Sub myItem_Open(Cancel As Boolean) 
 
 Dim mymsg As String 
 
 If myItem.UnRead = False Then 
 
 mymsg = "You have already read this message. Do you want to open this message again?" 
 
 If MsgBox(mymsg, 4) = 6 Then 
 
 Cancel = False 
 
 Else 
 
 Cancel = True 
 
 End If 
 
 End If 
 
End Sub

См. также

Объект MailItem

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.