2011-01-11 4 views
0

MailItemClassという名前のVBAクラスには、Outlookで電子メールを送信したときにeventという文字列が含まれています。私はVB.NETのためにこれを見つけることができません。私はdocumentationを見てきましたが、私はちょうどMAPIでそれを見つけることができません。Outlookから電子メールを送信するときにメソッドを呼び出しますか?

(VB.NETからVBAを呼び出せますか?)

答えて

2

Outlookアドインを作成していますか?アイテムが送信される前に発生したApplication.ItemSendというイベントがあります。私はちょうどVS2010を起動し、Outlook 2007から送信する新しいアドインのプロジェクトを作成しました。ちょうど下のコードが含まれていて、Application_ItemSendはOutlookから送信をクリックしたときに予想どおりに起動しました。

Public Class ThisAddIn 

    Private Sub ThisAddIn_Startup() Handles Me.Startup 

    End Sub 

    Private Sub ThisAddIn_Shutdown() Handles Me.Shutdown 

    End Sub 

    Private Sub Application_ItemSend(ByVal Item As Object, ByRef Cancel As Boolean) Handles Application.ItemSend 
     System.Windows.Forms.MessageBox.Show("Hi") 
    End Sub 
End Class 

EDIT

あなたが同じメソッドを使用しますが、あなたは少し違っそれを「見る」のWinFormsアプリを作っている場合。少し混乱させることができるのは、メールアイテム自体からではなく、アプリケーションレベルでイベントが発生するということです。

Public Class Form1 
    ''//Holds a reference to our mail application 
    Private WithEvents OA As Microsoft.Office.Interop.Outlook.Application 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     ''//Either launches Outlook or snaps to the current running one 
     OA = New Microsoft.Office.Interop.Outlook.Application() 
    End Sub 

    Private Sub OA_ItemSend(ByVal Item As Object, ByRef Cancel As Boolean) Handles OA.ItemSend 
     MessageBox.Show("Hello") 
    End Sub 
End Class 
+0

いいえ、私はOutlookアドインを作成していないでしょうか?私は作成された(MAPIを介して)電子メールが送信されると、データベースを更新する必要があるWindowsフォームプロジェクトを持っています。 – Zolomon

+0

上記のコードをWinFormsのバージョンで更新しました。 –

+0

ありがとう、私はそれを試してみましょう! – Zolomon

0

"VBAとVB.NETの両方が" Outlookオブジェクトモデル "を使用します。 sendイベントが省略されていることは奇妙です。しかし、あなたはまだこのeventを持っています。

私はVBの人ではあまりありませんが、MAPIはC++に向けられているため、VB.netからの使用は非常に合理的ではありませんが、MailItemはLPMESSAGEにほぼ対応します。さまざまなOutlookアドインフレームワークは、適切な通知システムを備えています。 MAPIを単独で使用する必要がある場合は、MAPI eventsを確認してください。ただし、簡単ではありません。

関連する問題