Vba 将文本插入传入电子邮件Outlook 2013锁定为只读
我正在努力通过VBA在传入的电子邮件中插入字符串。该例程在发送邮件时工作正常,如果用户单击“操作”“编辑”,它将在接收邮件时工作。问题是传入邮件在只读模式下被锁定。我花了13.5个小时到处找。这在早期版本的Outlook中是可能的,但是Microsoft已在Office 2013中删除了CommandBar功能。基本上,我需要一种方法来允许邮件通过VBA中的设置进行编辑 这是例行公事Vba 将文本插入传入电子邮件Outlook 2013锁定为只读,vba,outlook,inbox,incoming-mail,Vba,Outlook,Inbox,Incoming Mail,我正在努力通过VBA在传入的电子邮件中插入字符串。该例程在发送邮件时工作正常,如果用户单击“操作”“编辑”,它将在接收邮件时工作。问题是传入邮件在只读模式下被锁定。我花了13.5个小时到处找。这在早期版本的Outlook中是可能的,但是Microsoft已在Office 2013中删除了CommandBar功能。基本上,我需要一种方法来允许邮件通过VBA中的设置进行编辑 这是例行公事 Sub StampReference() Dim objOL As Outlook.Application Di
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
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
我已经破解了!以下是为感兴趣的人更改模式的方法它既快又脏,但它展示了如何完成。我使用了一些别人编写的代码进行重发,并使用各种变体偶然发现了要编辑的正确值。我在输入信息之前调用了这个例程
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
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
用户2970334对于其他有同样问题的人,你可以自己回答,然后接受答案。任何在搜索中找到此主题的人都会看到答案,并且更有可能查找到有用的答案。