首页 > 解决方案 > 如何更改此代码,以便任务调度程序可以将其作为 .vbs 文件运行?

问题描述

我有一些 vba 代码可以发送带有附件的电子邮件。它目前在 excel 中作为 vba 项目存在,但我希望能够将其保存为 vbs 脚本,以便我可以在每晚使用任务调度程序将其关闭。它仅适用于我假设的项目模块,因为我必须添加对 Outlook 库的引用。如果我在记事本中将脚本保存为 .vbs,它不会运行。

Option Explicit

Sub SendBasicEmail()

    Dim olApp As Outlook.Application
    Dim olEmail As Outlook.MailItem

    Set olApp = New Outlook.Application
    Set olEmail = olApp.CreateItem(olMailItem)

    With olEmail 

        .Display
        .Attachments.Add "FileDirectory"
        .To = "my email"
        .Subject = "Subject"
        .Send

    End With

End Sub

标签: vbaoutlook

解决方案


我不知道您是否可以从服务中使用它,但如果您将此代码保存到扩展名为 .vbs 的文本文件中,此代码将与您的 Excel VBA 版本相同:

Option Explicit

Const olMailItem = 0

Sub SendBasicEmail()
    Dim olApp: Set olApp = CreateObject("Outlook.Application")
    Dim olEmail: Set olEmail = olApp.CreateItem(olMailItem)
    With olEmail 
        .Display
        .Attachments.Add "FileDirectory"
        .To = "my email"
        .Subject = "Subject"
        .Send
    End With
End Sub

SendBasicEmail

主要区别:

  • 您不能静态引用 Outlook 库,因此您必须使用 CreateObject
  • 由于缺少库,您必须查找常量的值(例如 olMailItem)
  • 你不能将你的变量声明为某种类型,你可以只给它们一个名字,它们都是变体。
  • 您必须直接调用此 Sub,例如在文件末尾而不是从按钮的事件处理程序

推荐阅读