看Excel如何发邮件
数字办公
沈紫君:出于工作需要,我经常要把编辑的Excel工资表发送到指定的邮箱中,每次我都是编辑完所有部门的工作表后再用Outlook Express发送,感觉太繁琐了,能不能编个宏,此宏能实现编好一个工作表就直接通过Outlook Express发送到指定的邮箱?
办公专家陈邓新:在Excel中利用宏命令发送邮件是可行的,可通过创建一个Outlook.Application对象来实现,考虑到很多用户在安装Office时没有安装Outlook,所以也无法创建Outlook.Application对象。其实变通一下,VBA中的Sendkeys方法可以控制指定的应用程序,利用该方法可以方便地控制Outlook Express程序发送邮件。
按“Alt+F11”组合键打开VBA编辑器,在当前工作簿中插入一个模块,在模块中定义一个名为Sendmail的过程,输入过程代码(代码下载地址:http://download.cpcw.com),其中关键代码如下:
ThisWorkbook.SaveAs Filename:="c:\工资表.xls" 保存当前的工作簿文件
Shell "C:\Program Files\Outlook Express\msimn.exe", vbMaximizedFocus打开Outlook程序
SendKeys "%mn", True 打开新邮件窗口
SendKeys "aaa@yg.com.cn", True 输入收件人地址
SendKeys "{Tab}{Tab}", True
SendKeys "aaa", True 输入邮件主题
SendKeys "%ia", True
SendKeys "c:\工资表.xls", True 插入指定的附件
SendKeys "{enter}", True
SendKeys "%s", True 发送邮件
关闭代码窗口回到Excel工作表中。右击工具栏选择“自定义”命令,在“自定义”对话框的“命令”选项卡中找到“类别”中的“窗体”,从右侧的“命令”列表中拖一个“按钮”到工具栏中,右击该按钮选择“指定宏”命令,将定义的宏指定给该按钮。
以后要发送编辑的工作簿文件,只要单击一下该按钮,当前的工作簿就被发送到指定的邮箱了(代码中的邮箱地址、主题和附件可根据需要进行修改),发送邮件的窗口一闪即逝(见图)。当然了,要想成功的发送邮件,Outlook Express的账号配置是必不可少的,这是成功发送邮件的前提。
