邮件,你用客户端还是webmail?当gmail横空出世以后,我基本上都是用后者,但没有放弃前者。
客户端,你用outlook,还是outlook express,还是foxmail还是其它?
这时,可选项就太多了。仅windows自己的产品就有三款。不过,在中国市场上,可能foxmail占据的份额不小吧。
现在问题出来了。如果有一个Excel文件,里面需要有一个按钮,单击即将此文件作为附件通过附件发送到指定的信箱。使用者可能为各种各样的人(各种各样的客户端,不同的电脑熟练程度),怎么样写这个VBA代码?
貌似不难。我在网上找了许多。但截至目前,我还没有找出办法解决。
但,如果调用outlook来发送,这个是好办的(不管outlook是否为默认的邮件客户端,前提必须是你已经把它设置好了并且可用)。Ron de Bruin同学有整套的解决方案并且无私的贡献出来了。稍作修改或者不修改均可各取所需。
这里有一个小小的问题就是:发送邮件的时候会弹出警告对话框,说有另一个不明程序试图以你的名义发邮件,并且默认情况下是拒绝。看来,虽然同是一家亲,outlook和Excel也是互不买帐的,呵。网上有相应的解决办法,但好像都是要对客户端(Excel文件使用者而不是此源文件的制造者)机器作手脚的,所以,这种“手术”不适用。(如果每个用户都听你的话去安装什么插件来解决这个问题,你还不如让他从头开始写邮件呢。出发点就是应该把用户当傻瓜并且是大爷,不需要他动什么脑筋并且操作简单。)
如果一定要调用默认的邮件客户端呢?好像也有许多程序,不过我copy过来之后一个都没有调试通过(是我自己的问题,我也不过比“傻瓜”略略多会几步操作)。找来找去回到最开始的mailto超链接。
但是如此一样,要做一个“按钮”就显得多余,而,为了美观和醒目,最好是需要一个按钮(因为还有一个打印的按钮),于是在单元格里“做假”吧,比如说,添加填充效果,再增加阴影效果。还是不像“按钮”。
最后想到的办法是:不就是一个超链接吗,我做一个山寨版的按钮:截一个按钮的图放那里,再做图片的超链接。
事成!
只不过打印出来之后细看,才知道山寨版的按钮和真正有按钮还是有不同。并且,这种超链接的方式要手机添加附件,算是基本上没有实现初衷。
2008年12月23日 19:53:00
建议去Excelhome论坛看看,
相信你的问题会有很好的答案
2008年12月23日 22:44:00
装了虚拟打印程序也可以解决问题
2008年12月25日 10:21:00
帖一段源代码出来,如下:
---------------------------
Sub 邮件发送_Click()
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = "在这里输入收件人地址"
.CC = "这里是 抄送地址"
.BCC = ""
.Subject = "这是邮件标题"
.Body = "请在这里设置邮件主体内容"
.Attachments.Add ActiveWorkbook.FullName
'也可以在这里加入绝对地址的其它附件
'.Attachments.Add ("C:\test.txt")
.Send 'or use .Display
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub