2015-09-20 290 views
1

我有兩個Excel文件:一個是啓用宏的,一個是空白的Excel表單。用附件發送郵件[Lotus Notes]

情景: - 目前,空白Excel表格將被手工填寫和附着在Lotus Notes電子郵件和日常對外發送出去。 - 此Excel空白表格一旦充滿信息,也將另存爲具有不同文件名的新Excel文件。

現在,我想編寫VBA的Excel這樣的,我只需要點擊按鈕派出附着在Lotus Notes電子郵件的Excel表格。

我已經發現的代碼如下,它是工作:

Sub Send_Email_via_Lotus_Notes() 
Dim Maildb As Object 
Dim MailDoc As Object 
Dim Body As Object 
Dim Session As Object 
'Start a session of Lotus Notes 
    Set Session = CreateObject("Lotus.NotesSession") 
'This line prompts for password of current ID noted in Notes.INI 
    Call Session.Initialize 
'or use below to provide password of the current ID (to avoid Password prompt) 
    'Call Session.Initialize("<password>") 
'Open the Mail Database of your Lotus Notes 
    Set Maildb = Session.GETDATABASE("", "D:\Notes\data\Mail\eXceLiTems.nsf") 
    If Not Maildb.IsOpen = True Then Call Maildb.Open 
'Create the Mail Document 
    Set MailDoc = Maildb.CREATEDOCUMENT 
    Call MailDoc.REPLACEITEMVALUE("Form", "Memo") 
'Set the Recipient of the mail 
    Call MailDoc.REPLACEITEMVALUE("SendTo", "Ashish Jain") 
'Set subject of the mail 
    Call MailDoc.REPLACEITEMVALUE("Subject", "Subject Text") 
'Create and set the Body content of the mail 
    Set Body = MailDoc.CREATERICHTEXTITEM("Body") 
    Call Body.APPENDTEXT("Body text here") 
'Example to create an attachment (optional) 
    Call Body.ADDNEWLINE(2) 
    Call Body.EMBEDOBJECT(1454, "", "C:\dummy.txt", "Attachment") 
'Example to save the message (optional) in Sent items 
    MailDoc.SAVEMESSAGEONSEND = True 
'Send the document 
'Gets the mail to appear in the Sent items folder 
    Call MailDoc.REPLACEITEMVALUE("PostedDate", Now()) 
    Call MailDoc.SEND(False) 
'Clean Up the Object variables - Recover memory 
    Set Maildb = Nothing 
    Set MailDoc = Nothing 
    Set Body = Nothing 
    Set Session = Nothing 

不過,我想附件的文件名和郵件主題是變量,而不是硬編碼的靜態文件名和路徑。

請問誰提供一些指導?

回答

2

使用參數。

Sub Send_Email_via_Lotus_Notes(filename as string, emailSubject as string) 
Dim Maildb As Object 
Dim MailDoc As Object 
Dim Body As Object 
Dim Session As Object 
'Start a session of Lotus Notes 
    Set Session = CreateObject("Lotus.NotesSession") 
'This line prompts for password of current ID noted in Notes.INI 
    Call Session.Initialize 
'or use below to provide password of the current ID (to avoid Password prompt) 
    'Call Session.Initialize("<password>") 
'Open the Mail Database of your Lotus Notes 
    Set Maildb = Session.GETDATABASE("", "D:\Notes\data\Mail\eXceLiTems.nsf") 
    If Not Maildb.IsOpen = True Then Call Maildb.Open 
'Create the Mail Document 
    Set MailDoc = Maildb.CREATEDOCUMENT 
    Call MailDoc.REPLACEITEMVALUE("Form", "Memo") 
'Set the Recipient of the mail 
    Call MailDoc.REPLACEITEMVALUE("SendTo", "Ashish Jain") 
'Set subject of the mail 
    Call MailDoc.REPLACEITEMVALUE("Subject", emailSubject) 
'Create and set the Body content of the mail 
    Set Body = MailDoc.CREATERICHTEXTITEM("Body") 
    Call Body.APPENDTEXT("Body text here") 
'Example to create an attachment (optional) 
    Call Body.ADDNEWLINE(2) 
    Call Body.EMBEDOBJECT(1454, "", filename, "Attachment") 
'Example to save the message (optional) in Sent items 
    MailDoc.SAVEMESSAGEONSEND = True 
'Send the document 
'Gets the mail to appear in the Sent items folder 
    Call MailDoc.REPLACEITEMVALUE("PostedDate", Now()) 
    Call MailDoc.SEND(False) 
'Clean Up the Object variables - Recover memory 
    Set Maildb = Nothing 
    Set MailDoc = Nothing 
    Set Body = Nothing 
    Set Session = Nothing 
相關問題