闲言碎语

快乐工作,快乐生活! obnehc @ gmail.com
稍候可搜索本站......

邮件,你用客户端还是webmail?当gmail横空出世以后,我基本上都是用后者,但没有放弃前者。
客户端,你用outlook,还是outlook express,还是foxmail还是其它?
这时,可选项就太多了。仅windows自己的产品就有三款。不过,在中国市场上,可能foxmail占据的份额不小吧。
现在问题出来了。如果有一个Excel文件,里面需要有一个按钮,单击即将此文件作为附件通过附件发送到指定的信箱。使用者可能为各种各样的人(各种各样的客户端,不同的电脑熟练程度),怎么样写这个VBA代码?
貌似不难。我在网上找了许多。但截至目前,我还没有找出办法解决。
但,如果调用outlook来发送,这个是好办的(不管outlook是否为默认的邮件客户端,前提必须是你已经把它设置好了并且可用)。Ron de Bruin同学有整套的解决方案并且无私的贡献出来了。稍作修改或者不修改均可各取所需。
这里有一个小小的问题就是:发送邮件的时候会弹出警告对话框,说有另一个不明程序试图以你的名义发邮件,并且默认情况下是拒绝。看来,虽然同是一家亲,outlook和Excel也是互不买帐的,呵。网上有相应的解决办法,但好像都是要对客户端(Excel文件使用者而不是此源文件的制造者)机器作手脚的,所以,这种“手术”不适用。(如果每个用户都听你的话去安装什么插件来解决这个问题,你还不如让他从头开始写邮件呢。出发点就是应该把用户当傻瓜并且是大爷,不需要他动什么脑筋并且操作简单。)
如果一定要调用默认的邮件客户端呢?好像也有许多程序,不过我copy过来之后一个都没有调试通过(是我自己的问题,我也不过比“傻瓜”略略多会几步操作)。找来找去回到最开始的mailto超链接。
但是如此一样,要做一个“按钮”就显得多余,而,为了美观和醒目,最好是需要一个按钮(因为还有一个打印的按钮),于是在单元格里“做假”吧,比如说,添加填充效果,再增加阴影效果。还是不像“按钮”。
最后想到的办法是:不就是一个超链接吗,我做一个山寨版的按钮:截一个按钮的图放那里,再做图片的超链接。
事成!
只不过打印出来之后细看,才知道山寨版的按钮和真正有按钮还是有不同。并且,这种超链接的方式要手机添加附件,算是基本上没有实现初衷。

3 评论在此

  1. 匿名  

    建议去Excelhome论坛看看,
    相信你的问题会有很好的答案

  2. Unknown  

    装了虚拟打印程序也可以解决问题

  3. Chen Bo  

    帖一段源代码出来,如下:
    ---------------------------
    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

发表评论

全部文章列表

分类

声明

本博客系私人领地,奉行三不政策:不拉客、不拒客、不认帐。亦即:不对外宣传广告,不反对任何人的光临驻留,不承认偶曾在这里说过的话。

跟踪

最新评论

其它文章