Вставка текста во входящую почту 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

Другие вопросы по тегам