Excel 获取已登录的Office 365用户id

Excel 获取已登录的Office 365用户id,excel,vba,office365,Excel,Vba,Office365,如何在Excel VBA中获取已登录的Office 365用户id 不是应用程序。用户名或环境(“用户名”)我假设“ID”指的是此人的姓名?以下几点应该有效 Sub getLoggedInUser() Dim olApp As Object Dim olNS As Object Set olApp = CreateObject("Outlook.Application") Set olNS = olApp.GetNamespace("MAPI") With olNS.session

如何在Excel VBA中获取已登录的Office 365用户id

不是
应用程序。用户名
环境(“用户名”)

我假设“ID”指的是此人的姓名?以下几点应该有效

Sub getLoggedInUser()

Dim olApp As Object
Dim olNS As Object

Set olApp = CreateObject("Outlook.Application")
Set olNS = olApp.GetNamespace("MAPI")

    With olNS.session.currentuser.AddressEntry.GetExchangeUser
        'some different options for getting the name
        Debug.Print .Name
        Debug.Print .FirstName
        Debug.Print .LastName
        Debug.Print .Alias
    End With

End Sub
我猜你指的是那个人的名字?以下几点应该有效

Sub getLoggedInUser()

Dim olApp As Object
Dim olNS As Object

Set olApp = CreateObject("Outlook.Application")
Set olNS = olApp.GetNamespace("MAPI")

    With olNS.session.currentuser.AddressEntry.GetExchangeUser
        'some different options for getting the name
        Debug.Print .Name
        Debug.Print .FirstName
        Debug.Print .LastName
        Debug.Print .Alias
    End With

End Sub

Office扩展模型没有为此提供任何东西


您所能做的最好的事情是登录到与Office帐户对应的Outlook配置文件,并使用
GetExchangeUser
方法,如果
AddressEntry
属于Exchange AddressList对象(如全局地址),则返回一个
ExchangeUser
对象,该对象表示
AddressEntry
列表(GAL)并对应于
交换
用户。您必须连接到Exchange服务器才能使用此方法。而且没有人能保证默认配置文件连接到Outlook中的Office365帐户。

Office扩展性模型没有为此提供任何功能


您所能做的最好的事情是登录到与Office帐户对应的Outlook配置文件,并使用
GetExchangeUser
方法,如果
AddressEntry
属于Exchange AddressList对象(如全局地址),则返回一个
ExchangeUser
对象,该对象表示
AddressEntry
列表(GAL)并对应于
交换
用户。您必须连接到Exchange服务器才能使用此方法。而且没有人可以保证默认配置文件连接到Outlook中的Office 365帐户。

这不稳定,因为您正在连接的默认配置文件可能未链接到Office 365帐户。这不稳定,因为您正在连接的默认配置文件可能未链接到Office 365帐户。