5

Excel VBA に次の基本的な電子メール コードがあります。

Dim OutAppUser      As Object  
Dim OutMailUser     As Object  
Set OutAppUser = CreateObject("Outlook.Application")  
Set OutMailUser = OutAppUser.CreateItem(0)  
With OutMailUser  
            .To = Range("Ctl_Req_Email").Value  
            .CC = ""  
            .BCC = ""  
            .Subject = TempFNUser  
            .ReadReceiptRequested = False  
            .Body = userEmailText  
            .Attachments.Add FullTempNameUser  
            .Send    'Use .Send or .Display  
End With  

このマクロを含むワークブックは広く配布されていますが、実際に電子メール マクロを実行しているのはごく少数であり、現在はこれが送信される電子メール アドレスが変更されています。「メッセージを送信した後」の Outlook ルールを作成しました。これは、電子メールを外部にリダイレクトする手段として、新しい電子メール アドレスの「CC」を追加します。このルールは、手動のテスト メールでは完全に機能しますが、Excel VBA コードから送信されたメールでは機能しないようです。ルールを実行できるようにするために、電子メールを送信するために VBA コードに何か追加のコーディングが必要ですか?

4

2 に答える 2

1

http://www.slipstick.com/outlook/email/choosing-the-folder-to-save-a-sent-message-in/

「VBA は、ファイル、他のアプリケーションの [送信] コマンド、または Windows エクスプローラーの [送信先] コマンドで作成されたメッセージでは機能しません。[送信先] コマンドは、Outlook の機能をバイパスする簡易 MAPI を使用します。」

実際にはルールとは言いませんが、ルールがバイパスされているのを見てきました。

本当にルールを使用する場合は、Outlook で Excel を開きます。

于 2013-03-04T16:33:30.440 に答える
0

新しいマクロで新しいスプレッドシートを作成してみませんか:

Dim OutAppUser      As Object  
Dim OutMailUser     As Object  
Set OutAppUser = CreateObject("Outlook.Application")  
Set OutMailUser = OutAppUser.CreateItem(0)  
With OutMailUser  
            .To = Range("Ctl_Req_Email").Value  
            .CC = "New_email@address"  ' Only change to your code
            .BCC = ""  
            .Subject = TempFNUser  
            .ReadReceiptRequested = False  
            .Body = userEmailText  
            .Attachments.Add FullTempNameUser  
            .Send    'Use .Send or .Display  
End With  

ユーザーは古いシートを使用してデータを入力し、マクロ ドライバーはこのコードを使用して電子メールを送信します。

于 2013-02-26T12:00:37.173 に答える