我正在为outlook开发一款巨蟒。它通过win32com.client连接。我正在尝试检查Outlook中的ActiveWindow是独立窗口中的邮件(检查器)还是主窗口中的预览(资源管理器)。在VBA中,这是像检查here一样检查的 Dim curremail As Outlook.MailItem
Select Case TypeName(Application.ActiveWindow)
Case "Explorer"
Set curremail = Application.ActiveExplorer.Selection.Item(1)
我想知道文本在某一点,例如,一个Outlook电子邮件。
在Excel和Word中,我能够得到ActiveWindow。这两个对象模型都提供了我正在工作的RangeFromPoint方法。
在Outlook中,Applicaion对象确实有一个ActiveWindow,但它返回一个资源管理器或检查器对象。
此外,我尝试了以下代码,但是在Outlook中禁用的Word应用程序对象似乎没有提供RangeFromPoint。
Dim ins As Outlook.Inspector = olMail.GetInspector
Dim wDoc As Word.Document = ins.WordE
当我答复发送到非默认电子邮件帐户的会议邀请时,Outlook将从默认帐户而不是发送邀请的帐户发送答复。
我尝试使用ItemLoad事件来捕获这种情况,并设置一个在MailItem.Reply事件中使用的MailItem对象。在Set NonDefaultMailboxMtgMsg = myObj下面的这行代码中,我得到了一条类型错误消息。
如何将NonDefaultMailboxMtgMsg设置为会议请求对应的MailItem对象,以使其触发回复事件?
Public WithEvents NonDefaultMailboxMtgMsg As MailItem
Dim MeetingReplyD
我试图用python中的win32com.client实现Outlook的自动化。
我已经有一个宏,创建我的电子邮件,所有的主题和附加文件。
问题是,当我试图用Python实现它的自动化时,我不知道如何选择宏打开的窗口和所有信息,并将我想要发送的地址放在其中。例句:我想把它发送到“艾伯特”所有的电子邮件中,其中有编号为"1234“的附加文件。
另外,我得到了错误的" AttributeError: 'NoneType' object has no attribute 'To' "
outlook = win32.dynamic.Dispa
我在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
如果这是张贴的,请告诉我,因为我找不到它:)
我在Outlook中做了一个提示符,它选择当前邮件项并在打开应用程序之前删除它:
Dim objApp As Outlook.Application
Set objApp = Application
On Error Resume Next
Select Case TypeName(objApp.ActiveWindow)
Case "Explorer"
Set CurrentItem = objApp.ActiveExplorer.Selection.item(1)
Case "In
在outlook中,当您选择一个邮箱,然后单击新邮件时,在交换中启用自动发送,默认发件人是主帐户。手动挂载共享邮箱时,默认发件人是共享邮箱。微软。为了解决这个问题,我尝试在vba中创建一个宏。它有效,但只有一次!!以下是代码:
Private WithEvents objinspectors As Outlook.Inspectors
Private Sub Application_Startup()
Set objinspectors = Application.Inspectors
End Sub
Private Sub objinspectors_NewInspector(ByV
我们正在更新来自草稿文件夹的邮件,并每天发送几次。
我想打开一个选定的邮件,重新发送它,保存它,让它回到草稿,然后关闭它。
我试过在下面
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
我试图从我的选择中获取信息,但我没有运气。以下是我的单项代码,但无法将其用于我选择的项:
Function GetCurrentItem() As Object
Dim objApp As Outlook.Application
Set objApp = Application
On Error Resume Next
Select Case TypeName(objApp.ActiveWindow)
Case "Explorer"
Set GetCurrentItem = objApp.Activ
我正努力通过VBA在收到的电子邮件中插入一个字符串。该例程在发送邮件时工作正常,如果用户单击Actions Edit,它将对传入的邮件起作用。问题是传入的邮件是以只读模式锁定的。在过去的13.5小时里,我到处搜寻。在早期版本的Outlook中,这是可能的,但是微软已经删除了Office2013中的CommandBar功能。基本上,我需要一种允许邮件通过VBA中的设置进行编辑的方法。
这是例行程序
Sub StampReference()
Dim objOL As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim objDoc As W
我试图从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 2003 VBA宏,它清除邮件项的类别,并将其分配给一个按钮。但是,我有一个已经应用的条件格式设置规则,因此当我(在收件箱列表视图中)运行宏时,类别将被清除,但该项目上的条件格式设置将一直保留,直到我选择其他项目。
如何在宏中强制清除(或重新应用)条件格式设置规则?即对该消息进行非格式化。
作为参考,代码如下所示(如果有更好的方法,请解释):
Sub ClearCategories()
Dim msg As Outlook.MailItem
Select Case TypeName(Outlook.Application.ActiveWindow)
Case
当电子邮件被移动到某个文件夹时,我试图触发Python脚本。
其想法是在Outlook中设置一条规则,在电子邮件包含特定关键字时将其移动到特定文件夹,然后让VBA脚本在将新项添加到文件夹时启动带有参数的Python脚本。我在跟踪
Option Explicit
Private objNS As Outlook.NameSpace
Private WithEvents objItems As Outlook.Items
Private Sub Application_Startup()
Dim objWatchFolder As Outlook.Folder
Set objNS
我需要从应用程序生成和发送带有Outlook的消息。邮件表单应该以模式显示,主要是因为我生成附件,当用户发送电子邮件(或放弃它)时,应该删除它。
我的问题是当我创建Outlook对话框模式("MailIt.Display(True)")时,Outlook消息窗口显示在后台。命令"Outlook.ActiveWindow.Activate“将它带到前面,但是当窗口已经可见时可以调用它,所以如果窗口是模态的,我就不能调用它。我试过这个代码:
MailIt.Display(False);
OleVariant(Outlook.ActiveWindow).Activate;
M
我需要最大化的outlook窗口的背景,意思是不激活(聚焦)它,从excel vba,如何?
编辑:我发现这个解决方案除了用户"Kostas“的以下答案外,还能工作。
Dim aOutlook As Object
Set aOutlook = GetObject(, "Outlook.Application")
aOutlook.ActiveWindow.WindowState = 2
我的代码由两部分组成。首先是将数据从数据库复制到新创建的工作簿。第二种是附加新创建的工作簿,并通过outlook将其发送给某人。第一部分已成功完成。但是我不能修复第二部分。
Option Explicit
Sub CopySheetToAnotherWorkbook()
Dim wbk1 As Workbook: Set wbk1 = ActiveWorkbook
Dim wbk2 As Workbook
Dim Report As Worksheet: Set Report = ActiveWorkbook.Worksheets("Report&
当发送的响应出现时,我想删除一封邮件。这是我的代码片段。我不明白为什么每个的都会遇到错误13
Sub test222()
Dim oapp As Outlook.Application
Dim osession As Outlook.NameSpace
Dim oInbox As Outlook.MAPIFolder
Dim oSentItem As Outlook.MAPIFolder
Dim omail As Outlook.MailItem
Dim conID As String
Set oapp = New Outlook.Application
Set osession = o
标题是很清楚的。
我希望宏打开一个特定的邮箱,然后最大化新创建的资源管理器窗口,以便刚刚打开的邮箱是全屏的。
下面是我到目前为止掌握的代码:
Public Sub openMasterfiles()
' Define Variables
Dim olNS As Outlook.NameSpace
Dim myFolder As Outlook.MAPIFolder
' Set objects
Set olNS = GetNamespace("MAPI")
Set myFolder = olNS.Fold
我有工作代码,我想添加与预先存在的电子邮件id的抄送字段。
尝试了所有方法,但无法破解代码
Sub Reply_Scripting()
Dim origEmail As MailItem
Dim replyEmail As MailItem
Dim oRespond As Outlook.MailItem
Set origEmail = Application.ActiveWindow.Selection.Item(1)
Set replyEmail = Application.CreateItemFromTemplate("C:\Us
我正在使用Excel的后期绑定。
我得到了
编译器错误:未定义用户定义类型
适用于:
If TypeOf olMail Is MailItem Then
我声明以下变量:
Dim olApp As Object
Dim olNs As Object
Dim Fldr As Object
Dim olItms As Object
Dim olMail As Object
Set olApp = CreateObject("Outlook.Application")
Set olNs = olApp.GetNamespace("MAPI")
Set Fld
在Outlook中给电子邮件添加便条时,我试图增加一些方便。
我的计划是采用当前的过程,将注释添加到选定的电子邮件中(作为附件),并让它调用一个过程,该过程将在UserProperty对象上设置一个MailItem,以便通过向电子邮件列表视图中添加一个自定义列,可以轻松地查看哪些电子邮件附加了便条。
通过浏览互联网,我拼凑出了以下内容。
Option Explicit
Public Sub MarkHasNote()
Dim Selection As Outlook.Selection
Dim UserDefinedFieldName As String
Dim ob
从网络共享的文件夹中选择的邮件项目有一个奇怪的图标,不同于常规类型(附加图像)。这可能与报告已接收邮件的读/未读状态有关。也许是一个完全不同的班级。
如何在VBA中阅读这种类型的邮件?
Dim oSel As Outlook.Selection
Set oSel = Outlook.Application.ActiveExplorer.Selection
Dim oEmail As Outlook.mailitem
Set oEmail = oSel.Item(1) ' getting a 13 compile error in this line
我需要在outlook中创建某种触发器,在收件箱中接收新邮件时将执行python脚本。我确实提到了这个链接:,并编写了以下脚本:
Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
default local
我正在尝试从Excel的VBA宏中打开outlook。我可以打开它,但是如何让它转到特定的文件夹?假设是“已发送邮件”、“草稿文件夹”等。另外,如何选择另一个邮箱中的文件夹?我的Outlook中有两个邮箱。
以下是我到目前为止拥有的代码:
Sub my_prov_openOutlook()
Dim oOutlook As Object
On Error Resume Next
Set oOutlook = GetObject(, "Outlook.Application")
On Error GoTo 0
If oOutlook Is Nothing Then
S
我希望将选定Outlook电子邮件中的数据导出到工作簿。每封电子邮件的数据(主题、正文等)应该存储在不同的工作表中。
我试图编辑这个宏,因为它几乎是我所需要的--尤其是olFormatHTML和WordEditor-because of split的部分。
我的想法是
在Outlook打开文件路径中选择多封电子邮件,选择的每封电子邮件的数据将存储在打开的文件中的单个工作表中
宏的问题在第三部分。
从所选的项中,宏执行一个循环并只接收所选的第一封电子邮件,数据存储在不同的工作簿中;它应该存储在我打开的同一个工作簿中。
Public Sub SplitEmail()
Dim r
我有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
我有以下从Outlook导入电子邮件的代码。
获得行"outlookmail.receivedtime“的错误。
运行时错误438对象不支持此属性或方法。
Sub getDataFromOutlook()
Dim OutlookApp As Outlook.Application
Dim OutlookNamespace As Namespace
Dim Folder As MAPIFolder
Dim OutlookMail As Variant
Dim i As Integer
Set OutlookApp = New Outlook.Application
Set Outl
我设法找到了一个不错的小脚本,它可以将电子邮件转发到外部地址,因为我们的交换服务器被配置为不这样做。
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim varEntryIDs
Dim objItem
Dim i As Integer
varEntryIDs = Split(EntryIDCollection, ",")
For i = 0 To UBound(varEntryIDs)
Set objItem = Applicat
我正在Outlook中编写一个VBA宏,该宏引用Excel工作簿并对该工作簿进行更改。我想冻结窗格(而不是“拆分”)就在第1行下面。
下面是我尝试过的代码:
With Excel.ActiveWindow
.SplitColumn = 0
.SplitRow = 3
.FreezePanes = True
End With
...and...
Dim excApp As Object
Set excApp = CreateObject("Excel.Application")
With excApp.ActiveWindow
.SplitCol
我是outlook vba的新手。
当我在Outlook 2016 32位的日历中创建新约会时,我想运行宏
我试着用
Private WithEvents appt As Outlook.AppointmentItem
Private Sub appt_Write(Cancel As Boolean)
MsgBox ("test ok")
End Sub
在ThisOutlookSession模块中,但是当我编辑和保存一个新的约会时没有任何反应。
我要做什么?
我正在编写一些访问VBA代码,以获得一个特定电子邮件地址已经被电子邮件发送了多少次。我遇到的问题是,当第一次发送电子邮件时,电子邮件将我们的Exchange服务器作为
email1@domain.com
但是,一旦该人回复该电子邮件,则所有后续消息将显示为
'lastname, firstname'
我使用下面的VBA代码搜索email1@domain.com示例,但是如何使用access从全局地址列表中获取名称?
Function Test()
Dim searchEmail As String: searchEmail = "'abc123@abc123.
我试图在MS中实现搜索和移动功能。搜索是可以的,它很有魅力。但是,我只能找到要将消息移动到Outlook文件夹中的迁移函数。
我手动使用此会话功能中的“始终移动消息”。现在,我想从宏观上使用它。有什么方法可以从VBA中使用这个特性吗?
下面是当前的实现,但它使用了简单的移动功能:
Private Sub btn_Click()
Dim currentMail As Object
Dim F As Outlook.MAPIFolder
Dim Msg$
Set currentMail = Application.ActiveWindow
If TypeOf
我正在尝试运行outlook VBA来查找和替换从原始电子邮件到新电子邮件的文本,以发送给一堆利益相关者。
发现运行脚本有困难。场景,我收到一封包含公司名称列表的电子邮件。因此,每当我运行此脚本时,它应该替换为原始电子邮件中列出的公司名称。
下面是我的脚本。
Sub Test()
Dim origEmail As MailItem
Dim replyEmail As MailItem
Dim oRespond As Outlook.MailItem
Dim strcompany As String
Dim strHTML As String
Set origEmail = App