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