结合自动附件的功能
Combining functions for auto attachment
我有一些脚本可以根据一些收到的电子邮件规则附加和发送文件,效果很好。
Sub AddAttachment(Item As Outlook.MailItem)
Dim myOlApp As Outlook.Application
Dim myItem As Outlook.MailItem
Dim myAttachments As Outlook.Attachments
Set myOlApp = CreateObject("Outlook.Application")
Set myItem = myOlApp.CreateItemFromTemplate("C:\Templates\test upload file.oft")
Set myAttachments = myItem.Attachments
myAttachments.Add "C:\TEST0520ABCDE.txt"
myItem.Send
End Sub
我遇到的问题是附件文件名“150520ABCDE.txt”每天都在变化。 “150520”是日期。
因此我还有一些脚本可以根据日期分配正确的文件名。
Function LPad (str, pad, length)
LPad = String(length - Len(str), pad) & str
End Function
y = Year(Now)
m = Month(Now)
d = Day(Now)
f = "C:\Test\" & Mid(y, 3, 2) & LPad(m, "0", 2) & LPad(d, "0", 2) & "ABCDE.txt"
myAttachments.Add f
我的问题是如何将它们结合到一个脚本中?
我实际上会做的是:
Sub AddAttachment(Item As Outlook.MailItem)
Dim myOlApp As Outlook.Application
Dim myItem As Outlook.MailItem
Dim myAttachments As Outlook.Attachments
Set myOlApp = CreateObject("Outlook.Application")
Set myItem = myOlApp.CreateItemFromTemplate("C:\Templates\test upload file.oft")
Set myAttachments = myItem.Attachments
myAttachments.Add "C:\TEST\" & Format(Date, "yymmdd") & "ABCDE.txt"
myItem.Send
End Sub
希望对您有所帮助
我注意到脚本中有以下代码行:
Set myOlApp = CreateObject("Outlook.Application")
为什么需要在代码中新建一个Outlook Application实例?相反,您可以在 VBA 中使用 Application 属性 或仅使用传递的参数来检索所需的属性。
Sub AddAttachment(Item As Outlook.MailItem)
Dim myOlApp As Outlook.Application
Dim myItem As Outlook.MailItem
Dim myAttachments As Outlook.Attachments
Set myOlApp = CreateObject("Outlook.Application")
Set myItem = myOlApp.CreateItemFromTemplate("C:\Templates\test upload file.oft")
Set myAttachments = myItem.Attachments
myAttachments.Add "C:\Test\" & Mid(Year(Now), 3, 2) & LPad(Month(Now), "0", 2) & LPad(Day(Now), "0", 2) & "ABCDE.txt"
' or simply use the Format method
' myAttachments.Add "C:\TEST\" & Format(Date, "yymmdd") & "ABCDE.txt"
myItem.Send
End Sub
Function LPad (str, pad, length)
LPad = String(length - Len(str), pad) & str
End Function
最后,您可能会发现 Getting Started with VBA in Outlook 2010 文章很有帮助。
我有一些脚本可以根据一些收到的电子邮件规则附加和发送文件,效果很好。
Sub AddAttachment(Item As Outlook.MailItem)
Dim myOlApp As Outlook.Application
Dim myItem As Outlook.MailItem
Dim myAttachments As Outlook.Attachments
Set myOlApp = CreateObject("Outlook.Application")
Set myItem = myOlApp.CreateItemFromTemplate("C:\Templates\test upload file.oft")
Set myAttachments = myItem.Attachments
myAttachments.Add "C:\TEST0520ABCDE.txt"
myItem.Send
End Sub
我遇到的问题是附件文件名“150520ABCDE.txt”每天都在变化。 “150520”是日期。
因此我还有一些脚本可以根据日期分配正确的文件名。
Function LPad (str, pad, length)
LPad = String(length - Len(str), pad) & str
End Function
y = Year(Now)
m = Month(Now)
d = Day(Now)
f = "C:\Test\" & Mid(y, 3, 2) & LPad(m, "0", 2) & LPad(d, "0", 2) & "ABCDE.txt"
myAttachments.Add f
我的问题是如何将它们结合到一个脚本中?
我实际上会做的是:
Sub AddAttachment(Item As Outlook.MailItem)
Dim myOlApp As Outlook.Application
Dim myItem As Outlook.MailItem
Dim myAttachments As Outlook.Attachments
Set myOlApp = CreateObject("Outlook.Application")
Set myItem = myOlApp.CreateItemFromTemplate("C:\Templates\test upload file.oft")
Set myAttachments = myItem.Attachments
myAttachments.Add "C:\TEST\" & Format(Date, "yymmdd") & "ABCDE.txt"
myItem.Send
End Sub
希望对您有所帮助
我注意到脚本中有以下代码行:
Set myOlApp = CreateObject("Outlook.Application")
为什么需要在代码中新建一个Outlook Application实例?相反,您可以在 VBA 中使用 Application 属性 或仅使用传递的参数来检索所需的属性。
Sub AddAttachment(Item As Outlook.MailItem)
Dim myOlApp As Outlook.Application
Dim myItem As Outlook.MailItem
Dim myAttachments As Outlook.Attachments
Set myOlApp = CreateObject("Outlook.Application")
Set myItem = myOlApp.CreateItemFromTemplate("C:\Templates\test upload file.oft")
Set myAttachments = myItem.Attachments
myAttachments.Add "C:\Test\" & Mid(Year(Now), 3, 2) & LPad(Month(Now), "0", 2) & LPad(Day(Now), "0", 2) & "ABCDE.txt"
' or simply use the Format method
' myAttachments.Add "C:\TEST\" & Format(Date, "yymmdd") & "ABCDE.txt"
myItem.Send
End Sub
Function LPad (str, pad, length)
LPad = String(length - Len(str), pad) & str
End Function
最后,您可能会发现 Getting Started with VBA in Outlook 2010 文章很有帮助。