Outlook 加载项 mailitem.display 无法运行 Visual Basic
Outlook add-in mailitem.display not working Visual Basic
我正在将一些 outlook VBA 宏转换为插件。我在使用基于模板创建电子邮件的宏时遇到困难。我决定编写一个简单的按钮来创建和显示带有主题测试的新电子邮件。
一切都在努力显示没有发生的电子邮件。
Private Sub ButtonGenEmail_Click(sender As Object, e As EventArgs) Handles ButtonGenEmail.Click
Me.Close()
Dim objApp As Outlook.Application
Dim objMail As Outlook.MailItem
objApp = Globals.ThisAddIn.Application
objMail = objApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem)
objMail.Subject = "test"
objMail.Save()
objMail.Display(False)
End Sub
有一次我在 objMail.Display(False)
之后添加了 msgbox "Done"
,但该消息从未出现。
提前致谢
这显然应该有效。我对 Outlook 不是很熟练,但我想这里的问题是你 运行 它来自一个表单(我看到 Me.Close
)
那么 Outlook 是否会因为表单仍处于打开状态而阻止显示邮件(我猜 modal = ShowDialog()
)?
我认为您必须将表单更改为非模态形式(使用 Show()
而不是 ShowDialog()
) 或在表单已关闭,类似
下面的所有代码都是我脑子里写的,所以我可能会漏掉一些东西
一种方法从中初始化表单
Dim frm as new YourForm()
frm.ShowDialog()
if frm.MyState = TheyClickOnButton Then
' Run your mailItem code here
End If
在表单代码
Public Enum State
Unknown = 0
TheyClickedOnButton
End Enum
Public Property MyState as State
Private Sub ButtonGenEmail_Click(sender As Object, e As EventArgs) Handles ButtonGenEmail.Click
MyState = TheyClickedOnButton
Me.Close()
End Sub
我正在将一些 outlook VBA 宏转换为插件。我在使用基于模板创建电子邮件的宏时遇到困难。我决定编写一个简单的按钮来创建和显示带有主题测试的新电子邮件。
一切都在努力显示没有发生的电子邮件。
Private Sub ButtonGenEmail_Click(sender As Object, e As EventArgs) Handles ButtonGenEmail.Click
Me.Close()
Dim objApp As Outlook.Application
Dim objMail As Outlook.MailItem
objApp = Globals.ThisAddIn.Application
objMail = objApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem)
objMail.Subject = "test"
objMail.Save()
objMail.Display(False)
End Sub
有一次我在 objMail.Display(False)
之后添加了 msgbox "Done"
,但该消息从未出现。
提前致谢
这显然应该有效。我对 Outlook 不是很熟练,但我想这里的问题是你 运行 它来自一个表单(我看到 Me.Close
)
那么 Outlook 是否会因为表单仍处于打开状态而阻止显示邮件(我猜 modal = ShowDialog()
)?
我认为您必须将表单更改为非模态形式(使用 Show()
而不是 ShowDialog()
) 或在表单已关闭,类似
下面的所有代码都是我脑子里写的,所以我可能会漏掉一些东西
一种方法从中初始化表单
Dim frm as new YourForm()
frm.ShowDialog()
if frm.MyState = TheyClickOnButton Then
' Run your mailItem code here
End If
在表单代码
Public Enum State
Unknown = 0
TheyClickedOnButton
End Enum
Public Property MyState as State
Private Sub ButtonGenEmail_Click(sender As Object, e As EventArgs) Handles ButtonGenEmail.Click
MyState = TheyClickedOnButton
Me.Close()
End Sub