2014-08-27 91 views
0

我想使用VBscript打开模板(或.msg),编辑文本正文,同时保留格式并最终发送电子邮件。VB脚本,修改文本正文,同时保持格式化

电子邮件中有一段名为“插入日期”的部分,我想插入一个日期。

这里是一些代码,我目前有:

Set ol = CreateObject("Outlook.Application") 
Set msg = ol.CreateItemFromTemplate([location of template file] 

Set doc = msg.GetInspector.WordEditor 

If Not doc Is Nothing Then 
    doc.application.selection.find.execute _ 
     "insert date", , , , , , , , , DateValue(Now() - Weekday(Now(), vbMonday) - 2), wdReplaceAll 
End If 

不幸的是这不替换文本,而是只出现突出显示的文本,我无法做其他事情。

另一个相关的问题: 我是新来的编程,我用VBScript,因为我来自VBA,我在做一个非常类似的文件。看来,VBScript不仅是限制性的,而且我也不觉得它非常易于使用(也许是因为它不是非常强大?) 是否有另一种语言可以用来自动化这类事情并与Outlook进行交互? 也许Python,但我不确定从哪里开始使用Microsoft Office集成。 注:我相信许多编码语言将能够做到这一点,但我受限于我可以在工作中使用,所以任何不太知名的语言肯定不会被支持:(

回答

0

我不知道vbs或替代)....

但你这个标记与Outlook,VBA,还有我喜爱做一些与此代码:

mailitem.HTMLBody = Replace(mailitem.HTMLBody, "text old", "text new" & now()) 

您还可以使用HTML标签,使文本加粗,大一点的东西

M斧

+0

你好马克斯,感谢您回复:)当我使用这种方法,它的工作原理,但它创建双行间距的原因。它似乎在每行之前和之后添加空格,并删除了一些突出显示。我不知道为什么会发生这种情况,但我不知道如何防止它发生。另外,我不知道如何用宏修改这些部分。 原始文本以RTF格式组成。 – penfold1992 2014-08-28 15:00:25

+0

你能为我上传模板吗?你是不是用“带宏”的意思 - 如前所述,我只能在vba中提供帮助,在那里我几乎是一个初学者;-) – Max 2014-08-29 07:32:47