2011-07-27 50 views
3

OutlookでクリックしたOutlookメールから.To行にアクセスしようとしています。項目Outlookからの抽出olMail ItemLoad VBAイベントの項目

具体的には、メールが特定のメールに送信されているかどうかを確認したいと思います。

広い視野:
たとえば、メールをクリックして、そのメールがこの特定のメールアドレス(Item.Toフィールド)に送信されたことが分かりました。この場合、ユーザーがそのメールに返信することを選択した場合(reply-event)、返信メールのCCフィールドにはメールが送信される別のメールアドレスが自動的に含まれます。私がこれまで持って、動作していない何

Private Sub Application_ItemLoad(ByVal Item As Object) 
    MsgBox "To: " & Item.To 
End Sub 

エラー: 値と要素の方法は、このイベントで扱うことができませんでした。

.Toフィールドにアクセスするには、mailitem-objectと宣言するためにオブジェクトを何とかキャストする必要がありますか?または、他の提案がうまくいくかもしれませんか?

+0

コードを試しましたか?私はそれが働いているかどうか私に知らせることができればそれを感謝します。 – JimmyPena

答えて

0

Application_ItemLoadはOutlook 2007で導入されたので、あなたのバージョンと仮定します。

私はこれをテストすることはできないのですが、それは動作するはずです:

Sub CheckRecips() 

Dim msg As Outlook.mailItem 
Dim msgRecips As Outlook.Recipients 
Dim msgRecip As Outlook.Recipient 
Dim msgReply As Outlook.mailItem 
Dim found As Boolean 
Dim replyRecip As Outlook.Recipient 

If TypeName(Outlook.ActiveExplorer.Selection(1)) = "MailItem" Then 
    Set msg = Outlook.ActiveExplorer.Selection(1) 
    Set msgRecips = msg.Recipients 

    For Each msgRecip In msgRecips 
    If msgRecip.Type = olTo And msgRecip.Address = "email address you're looking for" Then 
     ' we found it, exit loop 
     found = True 
     Exit For 
    End If 
    Next msgRecip 

    ' create reply 
    Set msgReply = msg.Reply 

    ' if email address was on recipient list, CC someone else on reply 
    If found Then 
     Set replyRecip = msgReply.Recipients.Add("someone else who should be CC'd") 
     replyRecip.Type = olCC 
    End If 

    msgReply.Display 
End If 

End Sub 

が受信している可能性があり、「特定」の人のメールアドレスを「あなたが探しているメールアドレス」を交換してくださいEメール。

"他の人はCC'd"を、特定の人物がメッセージを受け取ったときにCCに通知する人のEメールアドレスに置き換えます。

Assign this to a toolbar button必要なときにいつでも使用してください。

1

アプリケーションItemLoadイベントは、アイテムが完全に初期化されていない場合に発生します。

Public WithEvents myItem As Outlook.mailItem 

Private Sub Application_ItemLoad(ByVal Item As Object) 
    If (TypeOf Item Is mailItem) Then 
     Set myItem = Item 
    End If 
End Sub 

Private Sub myItem_Read() 
... 
End Sub 
:私たちが「ThisOutlookSession」クラスにあなたは以下のコードとするイベントを、達成ウォルドなどを開き、読む(あなたが欲しい、おそらく1)、などの別の項目イベントを、フックアップするのに便利です

乾杯!