2012-02-13 11 views
0

私は、従業員名、電子メールID、およびDOBの3つの列を持つExcelシートを持っています。Outlookメールの返信アドレスを変更します

従業員の生年月日と今日の日付と一致するマクロを作成し、Outlookメールを従業員とCC部門に送信します。

すべての従業員がそのメールを参照すると、返信をクリックするかすべてに返信することができます。

Toアドレスフィールドを誕生日の人の電子メールIDで置き換える別のOutlookマクロを書きました。

開いている任意のOutlook電子メールで、2番目のマクロが自分のシステムで動作しています。

私はOutlookマクロを持っているので実行できますが、すべての従業員システムで同じことを実行するには、このOutlookマクロが必要です。手動で自分のシステムにこのマクロを置くことなく、システムでどのように実行できますか?

+0

行の先頭にスペースがある場合、その行はコードとして書式設定されます。私はあなたの質問を読むことができるようにスペースを削除しました。 –

+0

[何を試しましたか?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) –

答えて

5

次のコードは、作成しているメッセージがObjMailであることを前提としています。

' Delete any existing reply recipients 
Do While ObjMail.ReplyRecipients.Count > 0 
    ObjMail.ReplyRecipients.Remove 1 
Loop 

' Add the new recipient 
ObjMail.ReplyRecipients.Add "[email protected]" 

' Send blind copy to other staff members 
ObjMail.BCC = "Staff1.isp.com, Staff2.isp.com, Staff3.isp.com" 

スタッフに送信されるメッセージには、誕生日のメッセージを送信した人からのメッセージが含まれています。しかし、誰かが返信すると、受信者は "[email protected]"になります。

他のスタッフにブラインドコピーを送付しました。これは、スタッフリストが秘密だからではありませんが、理由は次のとおりです。

  • 住所あたり平均20文字のスタッフがいる場合、CCでは500メッセージごとに10,000文字が追加されます。
  • 別の500 * 500メッセージを保存することを望むときに、返信を使用するスタッフを防ぎます。
  • 会社のサーバーを使いたい場合は、ObjMail.CCを使用します。

私は何年も前に私は全米に散在する何千人もの従業員を抱えていた英語のNHSのために働いたので、メッセージのサイズが心配です。小さな病院の誰かが自転車を病院内で宣伝しようとしましたが、その国のすべての従業員に宣伝することができました。私は遅いダイヤルアップ回線で家で働いた。このメッセージをダウンロードするのに30分かかりました。 I以下はテストルーチン

の完全なコードの要求に応じて、

新しいセクション私は私の答えをテストするために使用する完全なルーチンを含みます。それは私が別の答えのために書いたルーチンから適応されました。あなたが望むかもしれないが、もしあなたがどうやっているかをあなたに示してくれるHTML本文を作成します。私は私のテストに使用した実際の電子メールアドレスをダミーアドレスに置き換えました。それ以外の場合は変更されません。

Sub ReplyToRecipientWithBlindCopies() 

    ' Create a mail item with a simple message. 
    ' Send the mail item to "[email protected]" and make them 
    ' the recipient of any replies. 
    ' Send blind copies to all other recipients. 

    ' Author: Tony Dallimore, York, England 

    Dim OlApp As Outlook.Application 
    Dim ObjMail As Outlook.MailItem 

    Dim MessageBody As String 

    ' This creates a blue message on a grey background. This is a 
    ' demonstration of what is possible; not a recommendation! 
    MessageBody = "<table width=""100%"" style=""Color:#0000FF;" & _ 
     " background-color:#F0F0F0;""><tr><td align= ""center"">" & _ 
     "Happy birthday from all your colleagues!</td></tr></table>" 

    Set OlApp = Outlook.Application 
    Set ObjMail = OlApp.CreateItem(olMailItem) 
    With ObjMail 
    .BodyFormat = olFormatHTML 
    .Subject = "Happy birthday!" 
    .HTMLBody = HeadAndBodyToHtmlDoc("", MessageBody) 

    ' Remove any existing recipients 
    Do While .Recipients.Count > 0 
     .Recipients.Remove 1 
    Loop 
    ' Remove any existing reply recipients 
    Do While .ReplyRecipients.Count > 0 
     .ReplyRecipients.Remove 1 
    Loop 

    ' Add birthday person to Recipient and ReplyRecipient lists 
    .Recipients.Add "[email protected]" 
    .ReplyRecipients.Add "[email protected]" 

    ' You will need to replace this with a loop 
    ' to add all your staff members. 
    .BCC = "[email protected], [email protected], [email protected]" 

    ' Display the prepared messages ready for any final changes. 
    ' The user must send it. 
    .Display 
    End With 

End Sub 
Function HeadAndBodyToHtmlDoc(Head As String, Body As String) As String 

    ' Wrap Head and Body created by caller in a standard envelope. 

    ' Author: Tony Dallimore, York, England 

    HeadAndBodyToHtmlDoc = _ 
     "<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Frameset//EN""" & _ 
     " ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"">" & _ 
     vbCr & vbLf & "<html xmlns=""http://www.w3.org/1999/xhtml""" & _ 
     " xml:lang=""en"" lang=""en"">" & vbCr & vbLf & "<head><meta " & _ 
     "http-equiv=""Content-Type"" content=""text/html; " & _ 
     "charset=utf-8"" />" & vbCr & vbLf & Head & vbCr & vbLf & _ 
     "</head><body>" & vbCr & vbLf & Body & "</body></html>" 

End Function 
+0

こんにちはトニー、ありがとうございました。 –

+0

トニー、どうすればこのマクロを送ることができますか?すべての誕生日メール....... –

+0

私の答えの余分なセクションは、あなたが求める追加情報を与える必要があります。私の答えがあなたの要件を満たしていれば、あなたがそれを受け入れるなら、私はそれを感謝します。 –

関連する問題