通过Outlook编辑和发送邮件的VBS脚本

作者:
系列:办公自动化

查看该系列所有文章

工作中或多或少有些琐碎的事情,比如每天要发送和接受数据,很多是通过邮件的方式传递的。之前写过 如何在 Outlook 里自动保存附件 ,这里再发一个如何更方便地发送带附件的邮件。

主要是针对下面这个需求:每天需要发送一些特定的附件给特定的人,邮件有差不多固定格式的标题和正文,所带附件文件名的格式也比较固定,比如以当天日期为文件名的文件。

下载下面的 vbs 脚本随便放到某个地方,点击运行,将自动调用 Outlook 建立一封邮件(机器里需安装 Office Outlook ),自动填入预先指定的收件人,邮件标题为 "报告 2010-12-9"(后面日期可根据当天日期自动改变),并且载入 D 盘根目录下的"report 2010-12-9.docx"和"report 2010-12-9.pdf"作为附件。

下载地址

可对其进行自定义,用写字板打开这个 vbs 文件,修改下面这段即可:

' receiptions 为收件人列表
' Subject 为邮件标题
' Body 为邮件正文
' Attachments 为附件列表,每个附件都需附带路径。
' autoSend 设置是否直接发送,设置为False时将停留在最后窗口,需手动按Outlook的发送按钮进行发送

receiptions = "math.zqy@gmail.com; blog@zhiqiang.org"
Subject = "报告 " & sdt
Body = "附件是今日报告,请查收。"
Attachments = Array("D:\report " & sdt & ".docx", "D:\report " & sdt & ".pdf")
autoSend = False

该脚本需要你使用 Outlook 作为邮件软件,上面的脚本在 Outlook 2007 下测试通过,但在别的版本下应该也能用的。对于 Outlook Express 和 Lotus 都能实现同样的东西,这里不阐述了。

Q. E. D.

系列: 办公自动化 »
Excel 有一个很有用的功能是直接导入外部数据库或者使用外部数据源建立数据透视表和数据透视图。但比较可惜的是,这个数据源的查询语句是静态的,它无法根据日期自动修改(比如在应用中,我们希望每天获取的外部数据都是当天最新的数据),下面两个函数是修改外部数据源的 VBA 代码,调用它们就可以建立动态的数据源。
Excel 多表合并和查询是一个应用很广泛的问题。下面是一个简单的例子,我们需要从两张数据表里,得出每个行业的股票波动率平均值。第一个数据表保存了股票和行业的对应关系,有两列,第一列为股票名,第二列为每只股票对应的行业。第二张表保存了各个股票在各个交易日的收盘价和前收盘价,有四列,第一列是股票名,第二列为交易日,第三列和第四列分别为股票在这个交易日的前收盘价和收盘价。
上次说起 遇到两个 Matlab 的效率问题 ,还剩下 save , load 没说。不过这个问题的结论挺简单的,就是在 save 的时候尽量指定使用-v6 选项。