我有以下代码,告诉新消息何时到达!
Private Sub Application_NewMail()
MsgBox "New Mail Has Arrived"
End Sub
Run Code Online (Sandbox Code Playgroud)
我如何阅读这封邮件的主体?有什么好的Outlook编程教程吗?
我发现msdn教程很有用但是概述.
我在Outlook的Visual Basic(我们使用的是Outlook 2003和Exchange Server)中编写了一个消息处理函数来帮助我整理收到的电子邮件.
它对我有用,除非有时规则失败并且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) 我需要编写一个VBScript代码来检查outlook是使用MAPI配置文件还是使用RPC over HTTP/S配置文件.
那么任何人都可以让我知道哪个注册表项决定相同吗?
请帮忙.
我目前有一个脚本,我绑定到一个规则,以便我可以自动拒绝某些主题的会议请求:
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.Delete和oRequest.Delete,但不会从我的日历中删除该项目.
实际上,我正在寻找的相当于在会议请求中手动选择拒绝 - >不发送响应.
我无法确定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) 我有这个代码在我的文件夹中搜索.我有一个带有"草图"主题的电子邮件,但是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脚本,当在给定的工作表中按下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) 在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) 我的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 ×10
vba ×8
outlook ×6
excel ×2
excel-vba ×1
mailitem ×1
outlook-2003 ×1
registry ×1
typeof ×1
vbscript ×1