如何用vba判断outlook中具有几个邮箱账户?

outlook是一款邮件客户端软件,可以用于收发邮件。

它可以一次性添加多个邮箱账户。

当用vba操作outlook发送邮件时,如果有多个邮箱账户,需要先判断或者设置下用哪个邮箱账户进行发送。

要用vba访问 outlook 中的所有数据,需要从根对象NameSpace开始,它代表了任意数据源的根对象。

要返回NameSpace对象,可以通过GetNameSpace方法,在outlook中只能通过GetNamespace(“MAPI”) 或者 Session属性返回NameSpace对象。

其中 outlook vba 的Accounts 账户集合对象属于NameSpace对象的属性。

有了以上的知识,可以通过以下的vba代码获取outlook软件中添加的所有邮箱的账户信息:

Sub QQ1722187970()
    Dim objAccount As Outlook.Account
    Dim objOutlookApp As Outlook.Application
    Set objOutlookApp = New Outlook.Application
    Dim objNamespace As Outlook.Namespace
    With objOutlookApp
        Set objNamespace = .Session
        '与Session属性一样的效果
        Set objNamespace = .GetNamespace("MAPI")
        With objNamespace
            For Each objAccount In .Accounts
                With objAccount
                    '显示每个账户的名称
                    Debug.Print .DisplayName
                End With
            Next
        End With
    End With
End Sub

 

 

 

 

       

发表评论