我希望使用Excel VBA,识别用户发送Outlook任务项目的时间(单击任务项目上的“发送”按钮),然后执行给定的宏 .

编程必须全部在Excel中 .

我发现代码可以识别何时发送Outlook“email”,然后运行特定的宏 . 我已经改变它但它不起作用 .

它是Excel中的一个类模块!名称:“TaskItemSend”

Option Explicit

Private WithEvents mOutlook As Outlook.Application
Private WithEvents mTaskItem As Outlook.TaskItem

Private Sub Class_Initialitze()
    Set mOutlook = New Outlook.Application
End Sub

Public Sub CreateAndDisplayTaskItem()
    Set mTaskItem = mOutlook.CreateItem(3)
    mTaskItem.To = "some@address.com"
    mTaskItem.Subject = "Test"
    mTaskItem.Body = "Test Body"
    mTaskItem.Display
End Sub

Private Sub mTaskItem_Send(Cancel As Boolean)
    'run specific code
End Sub 

Private Sub Class_Terminate()
    Set mTaskItem = Nothing
    If Not mOutlook Is Nothing Then mOutlook.Quit
    Set mOutlook = Nothing
End Sub

我在一个普通的模块中写了这个:

Public c As TaskItemSend

Sub Test()
    Dim c As TaskItemSend
    Set c = New TaskItemSend
    c.CreateAndDisplayTaskItem
End Sub

我得到:运行时错误91对象变量或未设置块变量