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


发表评论