Страницы: 1
RSS
VBA. Получить имя учетной записи Microsoft Office 365, под которой Excel открывает файлы с sharepoint? (решено)
 
Добрый день

есть подписка на Office 365, есть учетная запись Microsoft, под которой я в него захожу (user@company.com), есть десктопный Excel, который открывает файлы с sharepoint.
при этом локальный пользователь никак не связан user@company.com, его просто как-то зовут (User02, Admin или еще как-то)

Как мне прочитать этот user@company.com через VBA?

Дело в том, что я хочу чтобы скрипт в автозагрузке книги работал только если ее открыли из-под определенной учетной записи Microsoft - user@company.com. Как мне это реализовать?

самое близкое к искомому это
Application.UserName
но это выдает всего лишь "Имя пользователя" из "Настройки" -> "Основные параметры для работы с Excel", но это близко не то

Upd:

Великий GPTChat (а то еще решите что это я такой умный) мне подсказал решение, оно работает если помимо Excel установлен Outlook с той же умолчальной учеткой в умолчальном профиле:

Код
Function GetUserEmail() As String
    On Error Resume Next
    Dim olApp As Object
    Dim olNs As Object
    Set olApp = CreateObject("Outlook.Application")
    Set olNs = olApp.GetNamespace("MAPI")

    ' Получаем email текущего пользователя
    GetUserEmail = olNs.CurrentUser.AddressEntry.GetExchangeUser().PrimarySmtpAddress

    ' Обработка ошибки, если Outlook не настроен или нет доступа к email
    If Err.Number <> 0 Then
        GetUserEmail = "Email не найден"
    End If
    On Error GoTo 0
End Function

а вызывается:
Код
    Dim userAccount As String
    userAccount = GetUserEmail()  ' Получаем email текущего пользователя через Outlook


Оставлю тут, вдруг пригодится кому
Изменено: AlexDen - 01.11.2024 09:19:10 (решил уточнить)
 
Цитата
написал:
Великий GPTChat (а то еще решите что это я такой умный)
В умеющих руках и ###-  оружие. )))
Страницы: 1
Читают тему
Наверх