将Excel连接到Outlook

问题描述 投票:0回答:2

我正在尝试编写一个函数,该函数将告诉Excel VBA是否已将参考设置为Outlook:

Function RefOutlook() As Boolean

    Application.Volatile

    On Error Resume Next

    If olFolderInbox=6 Then
            RefOutlook = True
        Else
            RefOutlook = False
    End If

End Function

我的逻辑是,如果建立引用,则VBA将识别Outlook内置常量olFolderInbox(等于6)并返回True,否则将出现错误,并且函数应返回False。问题在于,如果没有引用,则不会抑制该错误,会出现错误消息,并且该功能无法正常工作。

非常感谢您的反馈和建议。

excel vba outlook outlook-vba
2个回答
0
投票
您真正需要的是在VBA模块的开头指定Option Strict Statement。将隐式数据类型转换限制为仅扩大转换,不允许后期绑定,并禁止导致对象类型的隐式类型。当文件中显示Option Strict OnOption Strict时,以下情况导致编译时错误:

    隐式缩小转换
  • 后期绑定
  • 隐式键入导致Object类型
  • 因此,如果未添加Outlook引用,则会出现编译时错误。

  • 0
    投票
    我建议您使用早期绑定进行开发,并在部署应用程序时转换为后期绑定。这样,您不仅可以避免常量不可用的问题,而且可以避免任何版本问题。

    这样做时,您需要用自己的全局常量替换所有常量,例如olFolderInbox

    Global Const OL_FOLDER_INBOX = 1

    问候,
    © www.soinside.com 2019 - 2024. All rights reserved.