标签: outlook-vba

使用VBA阅读新的Outlook电子邮件?

我有以下代码,告诉新消息何时到达!

Private Sub Application_NewMail()
    MsgBox "New Mail Has Arrived"
End Sub
Run Code Online (Sandbox Code Playgroud)

我如何阅读这封邮件的主体?有什么好的Outlook编程教程吗?

我发现msdn教程很有用但是概述.

outlook vba outlook-vba

11
推荐指数
1
解决办法
3万
查看次数

MailItem何时不是MailItem?

我在Outlook的Visual Basic(我们使用的是Outlook 2003和Exchange Server)中编写了一个消息处理函数来帮助我整理收到的电子邮件.

它对我有用,除非有时规则失败并且Outlook停用它.

然后我重新打开规则并在我的收件箱中手动运行以赶上.该规则自发地失败并且每天停用几次.

我想一劳永逸地解决这个问题.

vba mailitem typeof outlook-vba outlook-2003

10
推荐指数
3
解决办法
4万
查看次数

MS Outlook宏将删除所选文本

任务是将删除线应用于所选文本区域中的当前字体.难点在于Outlook不支持动态记录宏 - 它希望手动编写代码.

例如,以下简单代码:

Selection.Font.Strikethrough = True
Run Code Online (Sandbox Code Playgroud)

适用于Word,但为Outlook提供错误:

Run-time error '424':
Object required
Run Code Online (Sandbox Code Playgroud)

outlook vba text-formatting outlook-vba

10
推荐指数
2
解决办法
6460
查看次数

哪些注册表项确定Outlook配置文件

我需要编写一个VBScript代码来检查outlook是使用MAPI配置文件还是使用RPC over HTTP/S配置文件.

那么任何人都可以让我知道哪个注册表项决定相同吗?

请帮忙.

registry vbscript outlook outlook-vba

10
推荐指数
3
解决办法
9万
查看次数

我怎么能默默地拒绝会议呢?

我目前有一个脚本,我绑定到一个规则,以便我可以自动拒绝某些主题的会议请求:

Sub AutoDeclineMeetings(oRequest As MeetingItem)

If oRequest.MessageClass <> "IPM.Schedule.Meeting.Request" Then
  Exit Sub
End If

Dim oAppt As AppointmentItem
Set oAppt = oRequest.GetAssociatedAppointment(True)

Dim oResponse
 Set oResponse = oAppt.Respond(olMeetingDeclined, True)
 oResponse.Send

End Sub
Run Code Online (Sandbox Code Playgroud)

但是,这会向会议组织者发送回复,这会对他们造成不必要的反应,因为他们不在乎我是否参加.

如何更改此代码,以便会议不会显示在我的日历中,从而不会发送任何响应?我试着简单地调用既oAppt.DeleteoRequest.Delete,但不会从我的日历中删除该项目.

实际上,我正在寻找的相当于在会议请求中手动选择拒绝 - >不发送响应.

outlook-vba

10
推荐指数
1
解决办法
3228
查看次数

使用Outlook 2013中的VBA将BCC添加到电子邮件中

我无法确定Outlook 2013的正确VBA代码,以便在电子邮件打开进行编辑时将固定电子邮件地址添加到电子邮件的BCC字段.我有以下代码,它创建电子邮件,然后设置BCC.

我想将BCC添加到我要回复的电子邮件中,因此该消息已经是"草稿"形式.

Sub sendcomment_click()
Set oMsg = Application.CreateItem(olMailItem)

With oMsg
    .Recipients.Add ("email address")
    'Set objRecip = Item.Recipients.Add("email address")
    'objRecip.Type = olBCC
    'objRecip.Resolve

    ' Join Email addresses by "; " into ".BCC" as string
    .BCC = "Person.A@somewhere.com; Person.B@somewhere.com"

    .Subject = "New Comment by"
    .Body = "sdfsdfsdf"
    .Display ' Comment this to have it not show up
    '.Send ' Uncomment this to have it sent automatically
End With

Set oMsg = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)

*更新*

我实施了德米特里的伟大建议

我的代码现在写道:

Sub BCC()
Dim objRecip …
Run Code Online (Sandbox Code Playgroud)

outlook vba outlook-vba

9
推荐指数
1
解决办法
1万
查看次数

在Outlook中进行VBA搜索

我有这个代码在我的文件夹中搜索.我有一个带有"草图"主题的电子邮件,但是VBA没有找到它(它转到ELSE子句)

任何人都可以说出错了吗?

Set olApp = GetObject(, "Outlook.Application")

Set olNs = olApp.GetNamespace("MAPI")
Set olFldr = olNs.GetDefaultFolder(olFolderInbox)
Set olItms = olFldr.Items

Set Mail = olItms.Find("[Subject] = ""*sketch*""") 'Tracking
If Not (Mail Is Nothing) Then
    'use mail item here

Else
    NoResults.Show
End If
Run Code Online (Sandbox Code Playgroud)

vba outlook-vba

9
推荐指数
2
解决办法
4万
查看次数

在VBA中更改HTML电子邮件正文字体类型和大小

我有一个VBA脚本,当在给定的工作表中按下VBA按钮时,该脚本会生成并发送电子邮件.

该脚本当前以相对较小的字体生成电子邮件.我想知道是否有一种方法可以将字体设置为Calibri,文本正好适用于11.

这是当前的VBA脚本:

Private Sub CommandButton1_Click()

Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Dim strUser As String
Dim signature As String
Dim sTo As String
Dim sCC As String
    'For To field
    Set emailRng = Worksheets("Send Email").Range("D3:I6")

    For Each cl In emailRng
        sTo = sTo & ";" & cl.Value
    Next

    sTo = Mid(sTo, 2)

    'For CC field
    Set emailRngCC = Worksheets("Send Email").Range("D8:I11")

    For Each cl In emailRngCC
        sCC = sCC & ";" & cl.Value
    Next …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba outlook-vba

9
推荐指数
1
解决办法
12万
查看次数

Outlook项目更改重复

在Outlook中,我有一个VBA脚本,它可以读取新的传入电子邮件并将一些信息保存到Excel文件中,还可以将文本正文和任何附件保存到文件夹中.现在,我想更改我的脚本,以便保存任何类别为"Blue"的电子邮件.

所以我修改了这里的一些部分,如下所示:

Public WithEvents objMails As Outlook.Items

Private Sub Application_Startup()
    Set objMails = Outlook.Application.Session.GetDefaultFolder(olFolderInbox).Items
End Sub

Private Sub objMails_ItemChange(ByVal Item As Object)

    If Item.Class = olMail And Item.Categories = "Blue" Then
        Set objMail = Item
    Else
        Exit Sub
    End If
....
Run Code Online (Sandbox Code Playgroud)

其余代码包含有关保存的详细信息,其中没有一个从我之前的工作脚本中更改过,但为了完整起见,我已将其包含在此处.

...
'Specify the Excel file which you want to auto export the email list
'You can change it as per your case
strRootFolder = "N:\Outlook Excel VBA\"
strExcelFile = "EmailBookTest3.xlsx"

'Get Access to the Excel file …
Run Code Online (Sandbox Code Playgroud)

excel outlook vba outlook-vba

9
推荐指数
1
解决办法
288
查看次数

Outlook保存后删除电子邮件

我的VBA技能非常有限但我到目前为止我现在想完成这个项目.

我的VBA代码低于我的前景.它将所需的电子邮件保存到我的驱

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")
    Set Items = objNS.GetDefaultFolder(olFolderInbox).Items

End Sub

Private Sub Items_ItemAdd(ByVal item As Object)

On Error GoTo ErrorHandler

    'Only act if it's a MailItem
    Dim Msg As Outlook.MailItem
    If TypeName(item) = "MailItem" Then
        Set Msg = item

    'Change variables to match need. Comment or delete any part unnecessary.
        If (Msg.SenderEmailAddress = "noreply@test.com") Or _
        (Msg.Subject = …
Run Code Online (Sandbox Code Playgroud)

outlook vba outlook-vba

9
推荐指数
1
解决办法
183
查看次数