2015-05-20 5 views
1

У меня есть сценарий, который прикрепляет и отправляет файл на основе правил входящей электронной почты, которые отлично работают.Объединение функций для автоматического прикрепления

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\150520ABCDE.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 

Мой вопрос: как связать их между собой одним сценарием?

ответ

0

То, что я на самом деле был бы сделать вместо этого:

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 

Надеется, что это помогает

+0

Работает так, как я хочу, большое спасибо – Tiggerbasher

0

я заметил следующую строку коды в скрипте:

Set myOlApp = CreateObject (» Outlook.Application ")

Зачем вам нужно создать новый экземпляр приложения Outlook в коде? Вместо этого вы можете использовать свойство Application в VBA или просто использовать переданный аргумент для получения необходимых свойств.

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 статью полезной.

+0

Большое спасибо, оба метода, похоже, работают – Tiggerbasher

Смежные вопросы