Вставка текста во входящую почту Outlook 2013 заблокирован только для чтения
Я изо всех сил пытаюсь вставить строку во входящее письмо через VBA. Подпрограмма отлично работает при отправке почты и будет работать с входящей почтой, если пользователь щелкнет Действия Изменить. Проблема в том, что входящая почта заблокирована в режиме только для чтения. Я провел последние 13,5 часов в поисках везде. Это возможно в более ранних версиях Outlook, однако Microsoft удалила функциональность CommandBar в Office 2013. По сути, мне нужен способ разрешить редактирование почты с помощью параметра в VBA.
Вот рутина
Sub StampReference()
Dim objOL As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim objDoc As Word.Document
Dim objSel As Word.Selection
strFullReference = "Reference: " & Reference
On Error Resume Next
Set objOL = Application
If objOL.ActiveInspector.EditorType = olEditorWord Then
Set objDoc = objOL.ActiveInspector.WordEditor
Set objNS = objOL.Session
Set objSel = objDoc.Windows(1).Selection
objSel.Move wdStory, -1
objDoc.Characters(1).InsertBefore _
strFullReference & vbCrLf & vbCrLf
objSel.Move wdParagraph, 1
End If
Set objOL = Nothing
Set objNS = Nothing
End Sub
РЕДАКТИРОВАТЬ
Я взломал это! Вот способ изменить режим для всех, кто заинтересован. Это быстро и грязно, однако это показывает, как это можно сделать. Я взял некоторый код, который кто-то написал для повторной отправки, и поиграл с вариантами, чтобы наткнуться на правильное значение для редактирования. Я называю эту процедуру прямо перед печатью информации в
Sub SetEditMode()
Dim myItem As Outlook.MailItem
Dim objInsp As Outlook.Inspector
Dim objActionsMenu As Office.CommandBarControl
Dim olNewMailItem As Outlook.MailItem
On Error Resume Next
Select Case TypeName(Application.ActiveWindow)
Case "Explorer"
Set myItem = ActiveExplorer.Selection.Item(1)
myItem.Display
Case "Inspector"
Set myItem = ActiveInspector.CurrentItem
Case Else
End Select
If myItem Is Nothing Then GoTo ExitProc
'edit mode
Set objInsp = ActiveInspector
objInsp.CommandBars.ExecuteMso ("EditMessage")
objActionsMenu.Execute
ExitProc:
End Sub
1 ответ
Я взломал это! Вот способ изменить режим для всех, кто заинтересован. Это быстро и грязно, однако это показывает, как это можно сделать. Я взял некоторый код, который кто-то написал для повторной отправки, и поиграл с вариантами, чтобы наткнуться на правильное значение для редактирования. Я называю эту процедуру прямо перед печатью информации в
Sub SetEditMode()
Dim myItem As Outlook.MailItem
Dim objInsp As Outlook.Inspector
Dim objActionsMenu As Office.CommandBarControl
Dim olNewMailItem As Outlook.MailItem
On Error Resume Next
Select Case TypeName(Application.ActiveWindow)
Case "Explorer"
Set myItem = ActiveExplorer.Selection.Item(1)
myItem.Display
Case "Inspector"
Set myItem = ActiveInspector.CurrentItem
Case Else
End Select
If myItem Is Nothing Then GoTo ExitProc
'edit mode
Set objInsp = ActiveInspector
objInsp.CommandBars.ExecuteMso ("EditMessage")
objActionsMenu.Execute
ExitProc:
End Sub
user2970334