如果用户正在使用预览窗格。NewInspector事件不会激发。我应该接上什么?
如果用户打开消息,我将收到此事件。
Application.Inspectors.NewInspector += InspectorOnNewInspector;
From there i can hook to
var appointmentItem = ((Outlook.AppointmentItem) inspector.CurrentItem);
((Outlook.ItemEvents_10_Event) appointmentItem).PropertyChange += ThisAddIn_
我有一些outlook VBA代码,它可以很好地保存附件,但是每次我在Outlook中收到电子邮件或会议通知时,如果我没有收到任何电子邮件或通知,代码会一直运行到完成,这会导致一个瞬间的越界错误。
是否有办法确保这些通知不会阻止代码运行?
Option Explicit
Sub SaveAttachmentsFromSelectedItemsPDF2_ForNext()
Dim currentItem As Object
Dim currentAttachment As Attachment
Dim saveToFolder As String
Dim save
我已经写了一些东西,可以快速更改电子邮件主题,添加发件人的首字母,这样我就可以在使用Outlook JIRA插件将其添加到JIRA问题之前单击它。
目前,这有点恼人,因为它必须打开邮件来改变电子邮件的主题,然后当它返回时,它会移动到下一封邮件。这增加了必须让我返回到正确消息的轻微不便。
如果您能帮助我弄清楚如何让它返回到正确的消息,我将不胜感激。也许是MailItem.EntryID,但我想不出如何在关闭时指向它。
Sub EditSubject()
Dim Item As Outlook.MailItem
Dim oInspector As Inspector
Dim strSubject
在Outlook中给电子邮件添加便条时,我试图增加一些方便。
我的计划是采用当前的过程,将注释添加到选定的电子邮件中(作为附件),并让它调用一个过程,该过程将在UserProperty对象上设置一个MailItem,以便通过向电子邮件列表视图中添加一个自定义列,可以轻松地查看哪些电子邮件附加了便条。
通过浏览互联网,我拼凑出了以下内容。
Option Explicit
Public Sub MarkHasNote()
Dim Selection As Outlook.Selection
Dim UserDefinedFieldName As String
Dim ob
我试图从Outlook电子邮件中获取表格,并使用VBA将其复制到Excel中。
下面的行中有一个错误91: object variable and with block variable not set。我一直在其他模块中使用getCurrent()函数,它工作得很好。
Set oTable = oConv.GetTable
我的VBA代码:
Public objApp As Outlook.Application
Sub ReadTable()
Dim oTable As Outlook.Table
Dim oConv As Outlook.Conversation
Set oConv
我编写了一个宏来打开Outlook搜索结果中选定的电子邮件的路径。
电子邮件不会自动标记在打开的文件夹中,所以我搜索"ActiveExplorer“中的电子邮件。使用.display,我可以打开电子邮件,但是我找不到选择"ActiveExplorer“中找到的电子邮件的方法。
Public Sub MailOrdnerPfad()
Dim obj As Object
Dim Ordner As Outlook.MAPIFolder
Dim Betreff As String
Dim Mail As MailItem
Set obj = Applicatio
使用下面的代码,当我试图向报表中添加附件文件名时,会得到一个错误。也许是语法问题?
错误发生在Report = Report & currentItem.Attachments.FileName行
错误是"object不支持此属性或方法。
有什么想法吗?
我正在Outlook中运行这段代码,
Private Sub GetAllEmailsInFolder(CurrentFolder As Outlook.Folder, Report As String)
Dim currentItem
Dim attachment As attachment
Dim
使用电子邮件规则触发VBA脚本,是否可以将电子邮件正文发送到剪贴板?我找到了这个,但它似乎不起作用。
Sub SaveToClipboard(Item As Outlook.MailItem)
Dim Explorer As Outlook.Explorer
Dim oitem As Outlook.MailItem
Dim oData As MSForms.DataObject
Set Explorer = Application.ActiveExplorer
If Explorer.Selection.Count Then
Set CurrentItem = Explore
下面的代码来自某个博客,它将剪贴板中的HTML插入到outlook电子邮件中。
Sub PrependClipboardHTML()
Dim email As Outlook.MailItem
Dim cBoard As DataObject
Set email = Application.ActiveInspector.CurrentItem
Set cBoard = New DataObject
cBoard.GetFromClipboard
email.HTMLBody = cBoard.GetText + email.HTMLBody
Set cBoard = Nothing
我有自动缩放电子邮件窗口窗格的代码。直到几天前,在对进行了最新更新之后,它才开始工作。
'Install redemption and add "Microsoft Word Object Library" reference and "Redemption Outlook library" reference.
Option Explicit
Dim WithEvents objInspectors As Outlook.Inspectors
Dim WithEvents objOpenInspector As Outlook.Insp
其逻辑如下:
循环通过选定的邮件。循环通过选定邮件的附件。保存附件到预定义的文件夹。
我正在经历运行时错误13。
我不确定哪种类型不匹配。
Public Sub SaveAttachments()
Dim objOL As Outlook.Application
Dim objMsg As Outlook.MailItem
Dim objAttachments As Outlook.Attachments
Dim objSelection As Outlook.Selection
Dim i As Long
Dim lngCount As Lon
我想创建一个Outlook宏来调整超过100 KB的附件JPG文件的大小。这适用于收件箱中已收到的邮件,而不是正在发送的邮件。
我有代码来查找超过设定大小的附加JPG文件,但不确定如何调整它们的大小,然后将图像保存回附件。
Sub ResizeAttachedImage()
Dim objMSG As Outlook.MailItem
Dim oAtt As Outlook.Attachments
Dim oFile
Dim extn As String
Dim sz As Long
'Get the source email
我试图告诉Outlook只选择一个邮件项,但它似乎选择了多个(我发送到的内部程序引用的是“这些文档”,而不是“此文档”)。正因为如此,它不让我选择文件类型,我相信这是因为程序将文件解释为容器而不是文件。
tl;dr:任何人都能在我的代码中看到任何允许Outlook选择多个邮件项目的内容吗?
Dim objApp As Outlook.Application
Set objApp = Application
Select Case TypeName(objApp.ActiveWindow)
Case "Explorer"
If objApp.Act
我遇到了这段代码,它打印电子邮件。
我正在尝试打印附件。
这也应该限于由senttoprint@test.com发送的电子邮件,例如,或者如果他们有特定的主题,如网络订单#2345。
Sub PrintEmail()
Dim objItem As Object
Dim objMail As Outlook.MailItem
Dim objWordApp As Word.Application
Dim strTempFolder As String
Dim strMailDocument As String
Dim objMailDocument
我正在尝试使一个outlook vba从outlook中选定的电子邮件中下载附件,并将其重命名为包含唯一的单词来标识每个发件人。到目前为止,除了最后一部分,我已经设法做到了这一点。 例如,如果我收到一封来自asdf@asdf.com(唯一标识符: Company A)的电子邮件,其中包含一个附件(order.xlsx),则下载该附件并将其重命名为'Company A- order.xlsx‘。 如果有人能解决这个问题,那将是一个很大的帮助。 提前谢谢你! Public Sub save_attchments()
Dim coll As VBA.Collection
Dim o
我有一个Sub可以打开当前打开的邮件项目的文件夹。
如果我打开了一个项目,但更改了其间的邮件文件夹,并且想要立即再次打开正确的文件夹,则这是有意义的。
Sub ordner_mail_oeffnen()
On Error GoTo exit_sub
'Dim olApp As Outlook.Application
Dim olitem As Outlook.mailitem
'Set olApp = Outlook.Application
Set olitem = Outlook.Application.ActiveInspector.
在Outlook2013 VSTO插件(C#)中,我可以使用" if (ActiveExplorer().CurrentView is CalendarView) ...“来检查用户当前是否在日历区域/视图中。
如何执行类似检查和查看用户是否在邮件视图中的操作?在该视图中,Outlook窗口底部的" Mail“处于选中状态/蓝色,并且用户可以看到其收件箱项目?我找不到可以比较ActiveExplorer().CurrentView等的MailView类型或类似类型。
我正试图在新的电子邮件中覆盖from地址。
行oMail.SentOnBehalfOfName = "<redacted>@<redacted>.com"负责处理这个问题,但是有一些帐户我不想这样做。
宏正常工作,但如果打开电子邮件模板,则会得到
运行时错误'91':对象变量或块变量未设置
调试器突出显示If语句的第一行。
Public Sub SetFromAddress(oMail As Outlook.MailItem)
oMail.SentOnBehalfOfName = "<redacted>
我们正在更新来自草稿文件夹的邮件,并每天发送几次。
我想打开一个选定的邮件,重新发送它,保存它,让它回到草稿,然后关闭它。
我试过在下面
Sub DRAFT()
Dim myItem As Outlook.MailItem
Dim objInsp As Outlook.Inspector
Dim objActionsMenu As Office.CommandBarControl
Dim olResendMsg As Outlook.MailItem
' get current item & open if needed
On Error Resum
在outlook中,当您选择一个邮箱,然后单击新邮件时,在交换中启用自动发送,默认发件人是主帐户。手动挂载共享邮箱时,默认发件人是共享邮箱。微软。为了解决这个问题,我尝试在vba中创建一个宏。它有效,但只有一次!!以下是代码:
Private WithEvents objinspectors As Outlook.Inspectors
Private Sub Application_Startup()
Set objinspectors = Application.Inspectors
End Sub
Private Sub objinspectors_NewInspector(ByV
我有两个个人电脑的设置:
Win10 Pro 1909与Outlook2019forBusiness
Win10 Pro Build 2004与2016年业务展望
(一切原版)
我的问题是,为什么相同的VBA代码在2019年工作,而在Outlook 2016中不工作。问题是在Outlook或不同版本的构建MS Win10?
这部分代码不起作用:
ThisOutlookSession
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim objMailPuvodni
当我从.oft模板创建电子邮件时,它并不会显示电子邮件的所有内容。
它缺少图像和/或附件之类的内容。
我尝试合并Sub reply1()和Sub reply2():
Sub Reply1()
Dim Original As Outlook.MailItem
Dim Reply As Outlook.MailItem
Set Original = Application.ActiveExplorer.Selection(1).Reply
Set Reply = Application.CreateItemFromTemplate("C:\Outlook\Mail.oft")
我正在尝试保存当前打开的邮件项目的数字签名。
现在我意识到Outlook阻止访问以编程方式对新电子邮件进行加密/签名。在这里,我关注的是已经收到的消息。
到目前为止,我只能使用MessageClass属性来检测签名电子邮件。
Function GetCurrentItem() As Object
Dim objApp As Outlook.Application
Set objApp = CreateObject("Outlook.Application")
On Error Resume Next
Select Case TypeName(o
我有一个宏,用于将多个Outlook项作为附件转发。我已经粘贴到下面,但我希望它也将转发的消息添加到outlook中的一个类别中。因此,它不仅会将我收件箱中的项目转发给收件人,而且还会在某个类别中标记这些项目。通过这种方式,我可以跟踪使用宏转发的项目。正如现在一样,它将向我展示该项目已经在这样和那样的日期转发,但这可能只是一个常规的转发行动。因此,需要宏将该项添加到专门类别中。
Sub ForwardSelectedItems()
On Error Resume Next
Dim objItem As Outlook.MailItem
If Application.ActiveExplo
我有VBA代码,可以将发送消息延迟5分钟。
Dim obj As Object
Dim Mail As Outlook.MailItem
Dim WkDay As Integer
Dim MinNow As Integer
Dim SendHour As Integer
Dim SendDate As Date
Dim SendNow As String
Dim UserDeferOption As Integer
Function getActiveMessage() As Outlook.MailItem
Dim insp As Outlook.Inspector
If TypeOf
我有一个带有treeview控件MSComctlLib.TreeView的MSComctlLib.TreeView。它用于保存拖动到驱动器上的文件。我的问题是,每当一封电子邮件有多个附件,其中一个被拖了过来,没有明显的方式来判断哪一个特定的附件从多个被选择。
下面的代码包括当文件被拖到TreeView并根据DataObject格式调用子文件时触发的事件。拖动附件时,此代码将解析当前选定的电子邮件中的所有附件(过滤掉嵌入的图像后)。attachments的排序不会改变选择附件的依据,我也找不到可能有帮助的PropertyAccessor属性。
Private Sub treeView_OLEDr
我想打开一个outlook任务并触发一个新的日记条目。在此之后,我想结束此任务。我在objTask_Open事件中使用了objTask.Close,但这给出了以下错误:参数不是可选的。任务打开后可以在自己的事件函数中关闭吗?
诚挚的问候,
瓦莫尔
Public WithEvents objInspectors As Outlook.Inspectors
Public WithEvents objJournal As Outlook.JournalItem
Public WithEvents objTask As Outlook.TaskItem
Private Sub Application
当使用VBA在Outlook 2010中加载项目时,我正在尝试更改发件人帐户。我有两个帐户,一个是gmail帐户,一个是POP3帐户。
回复、全部回复和转发时,Outlook默认使用接收电子邮件的帐户。如果我通过Gmail收到一封电子邮件,我想用一个POP3帐户回复。尽管我的默认帐户是POP3帐户,但Outlook还是将其更改为Gmail。
这就是我到目前为止所拥有的。不幸的是,我得到了一个错误:运行时错误'-6936698555 (d6a70005)':你没有适当的权限来执行这个操作。
Private Sub Application_ItemLoad(ByVal Item A
我在Outlook中有代码,可以从当前打开的电子邮件或选定的电子邮件中创建回复。
这段代码过去一直有效,但由于Application.ActiveExplorer.Selection不再识别打开的电子邮件而停止工作。
我的代码片段。
Public Sub ReplyWithAttachmentsTwo()
Dim rpl As Outlook.MailItem
Dim itm As Object
Dim objDoc As Word.Document
Dim objBkm As Word.Bookmark
Set itm = GetCurrentItem()
If Not itm Is N
我从一个模板创建一个邮件,并从突出显示的邮件中添加一些属性。
我想要原始标记的电子邮件(ActiveExplorer.Selection.Item(1))作为replyEmail的附件.
到目前为止我的代码是:
Dim replyEmail As Outlook.MailItem
Dim actualEmail As Outlook.MailItem
Set actualEmail = ActiveExplorer.Selection.Item(1)
Set replyEmail = Application.CreateItemFromTemplate("U:\Template.o
我使用Outlook for Office 365 (桌面)。
我试图从电子邮件主题或正文中复制选定的文本,并将其放入预定义的web地址并在默认浏览器中打开。
步骤:
打开或选择接收到的消息从主题或正文中选择单词运行宏默认浏览器应打开链接: word *<code>G 210</code>
下面的代码只在选定的单词在电子邮件正文中时打开链接。
Sub OPEN_DICT()
Dim msg As Outlook.MailItem
Dim insp As Outlook.Inspector
Dim vURL1
Dim vURL2
Dim fullVID
Dim full
我收到了很多垃圾邮件在我的工作Outlook 2010帐户。我提供了我们的垃圾邮件拦截地址,以转发垃圾邮件(作为附件)到。
我想点击丝带上的一个图标(我已经有了这个),并运行VBA代码,它接收当前消息,将其附加到新消息,向新消息添加一个地址,发送新消息,然后删除原始消息。(删除可以是将消息放到“已删除的邮件”文件夹中,也可以永久删除。)
解决了!
这是完全符合我要求的代码。我在网上找到了它,并修改它以满足我的需要。
Sub ForwardAndDeleteSpam()
'
' Takes currently highlighted e-mail, sends it as an