电子邮件 - 如何将光标放在正文的末尾?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了电子邮件 - 如何将光标放在正文的末尾?相关的知识,希望对你有一定的参考价值。
我正在使用Working with current open email这个问题的答案(即代码)来逐步建立一个电子邮件。每次运行宏时,它都会在打开的电子邮件的现有正文文本中添加一段正文。问题是,如果我在宏“运行”之间手动对电子邮件进行一些更改,那么在下次运行时,宏将插入新的正文文本构建块,我离开了光标。但我希望宏总是在现有(和扩展)正文文本结束后添加新的正文文本。更具体地说,这意味着我(可能)在代码“oSelection.InsertAfter myText”(请参阅上面链接中的代码)之前需要一些代码,将光标(插入点)移动到打开的电子邮件的末尾我正在与之合作。
我试图使用SendKeys命令,但使用它我只设法将光标发送到excel工作簿表的末尾,我有宏按钮。我希望光标改为打开电子邮件的结尾!
好的,所以我终于明白了:
If oInspector.IsWordMail Then
With NewMail
.Display
SendKeys "^+{END}", True
SendKeys "{END}", True
SendKeys "{NUMLOCK}"
End With
宏将光标留在主题字段中。这会将光标向下移动到正文中,并将其移动到行尾:
SendKeys "{Tab}{End}", True
完整示例:
Public Sub CreateNewMessage()
Dim objMsg As MailItem
Set objMsg = Application.CreateItem(olMailItem)
With objMsg
.To = "fake@example.com"
.CC = "other@example.com"
.BCC = ""
.Subject = "Test email for you"
.Categories = ""
.VotingOptions = ""
.BodyFormat = olFormatPlain ' send plain text message
.Body = "Thank you for your submission. "
.Display
SendKeys "{Tab}{End}", True
End With
Set objMsg = Nothing
End Sub
参考文献:
http://www.slipstick.com/developer/create-a-new-message-using-vba/
这一行:
SendKeys "{Tab}{End}", True
在我的电子邮件正文的开头留下了一个不活动的光标。通过手动标签,我注意到光标在From,To,CC,BCC等字段中移动。它花了11个标签,1个End将光标移到我电子邮件中的一行文本的末尾。虽然看起来很傻,但我编写了额外的标签,它工作得很好。
With Mess
.Display
.Sensitivity = 3
.To = Recip
.bcc = "redacted recipient"
.subject = subject
.Attachments.Add Path & fileName & ".pdf"
.htmlBody = strbody & "<br>" & .HTMLBody
SendKeys "{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}{End}", True
以上是关于电子邮件 - 如何将光标放在正文的末尾?的主要内容,如果未能解决你的问题,请参考以下文章
使用 JavaScript 将光标放在文本输入元素中的文本末尾