Vba 如何使用UserForm编辑草稿?
我正在开发一个程序,在文件夹中查找特定的电子邮件,并基于用户表单对该电子邮件执行一些操作 我创建并显示了UserForm,但它没有连接到电子邮件,因此在列表中的下一封电子邮件卸载UserForm之前,我无法将数据从UserForm传递到电子邮件 带有编辑信息的用户表单Vba 如何使用UserForm编辑草稿?,vba,email,outlook,Vba,Email,Outlook,我正在开发一个程序,在文件夹中查找特定的电子邮件,并基于用户表单对该电子邮件执行一些操作 我创建并显示了UserForm,但它没有连接到电子邮件,因此在列表中的下一封电子邮件卸载UserForm之前,我无法将数据从UserForm传递到电子邮件 带有编辑信息的用户表单 没有实现任何代码,因此我将不在这里包含代码 如果我尝试在按下“格式化并发送”的情况下运行脚本,我将无法找到我的循环所在的电子邮件,因为它位于另一个子系统中 在创建UserForm的子函数中是否有访问UserForm值的方法 Su
没有实现任何代码,因此我将不在这里包含代码 如果我尝试在按下“格式化并发送”的情况下运行脚本,我将无法找到我的循环所在的电子邮件,因为它位于另一个子系统中 在创建UserForm的子函数中是否有访问UserForm值的方法
Sub nameofSubRedacted()
Dim myNameSpace As Outlook.NameSpace
Dim myFolder As Outlook.Folder
Set myNameSpace = Application.GetNamespace("MAPI")
Set myFolder = FindInFolders(myNameSpace.Folders, "specific folder")
Dim mail As MailItem
For Each mail In myFolder.Items
If InStr(mail.Subject, "specific text") Then
mail.Display
UserForm_Main.Show
'this is where the form is filled in, and a selection is made.
End If
Next mail
End Sub
您需要更改消息的
MessageClass
属性以匹配自定义表单的属性。您可以将mailitem作为参数传递
选项显式
subreded()的子名称
将myFolder设置为文件夹
将邮件设为邮件项
Dim replyMail作为邮件项
设置myFolder=Session.GetDefaultFolder(olFolderInbox)
对于myFolder.Items中的每封邮件
如果InStr(mail.subject,“特定文本”),则
邮件显示
UserForm_Main.Show
“这是填写表格并进行选择的地方。
Set replyMail=mail.reply
回复邮件
.HTMLBody=“Hello”&UserForm\u Main.TextBox1.Value和.HTMLBody
.展示
以
MsgBox“首选名称已更新”。&vbCr&vbCr&_
“传递replyMail以进行更多处理。”
更多处理回复邮件
如果结束
下一封邮件
端接头
子项目处理(mailAsParameter作为MailItem)
MsgBox“回复邮件,主题:”&vbCr&vbCr&_
mailAsParameter.subject&vbCr&vbCr&_
“已传递给moreProcessing。”
端接头
关于MessageClass属性的文档不多。我能从中找到什么。我不确定1)由于自定义表单没有MessageClass属性,因此要将属性更改为什么;2)此电子邮件仍将在宏完成后发送。这是否需要在我进行任何调整后将messageClass属性更改回IPM.Note(用于电子邮件)?您可以,但是IPM.Note.MyForm可以保持原样-Outlook应该能够发送它。