为什么我能够在不限定对象名称的情况下执行方法?

时间:2015-12-07 21:30:45

标签: vba

当我注意到我忘记了一条线但是它仍然有效并且我没有得到编译错误时,我正在从excel自动化Outlook电子邮件。是否有诸如默认库对象之类的东西?

Sub sendmail()

Dim olmsg As Outlook.MailItem

'This works
Set olmsg = Outlook.CreateItem(olMailItem)

'What it should be
Set olmsg = Outlook.Application.CreateItem


End Sub

1 个答案:

答案 0 :(得分:0)

在Outlook中工作时,它会自动识别Outlook类型。 类似于Excel在不首先表达Excel.Application的情况下识别ActiveSheet和ActiveCell等关键字的方式。

最好使用longhand表达式,因为你需要将类似的代码移植到Excel以便在Outlook中工作,并且因为VBA不能很好地处理溢出。