Аннотация
Можно сделать вызов Windows API (интерфейс прикладного программирования) для Microsoft Windows библиотек DLL (библиотека динамической компоновки) для получения имени текущего пользователя. Имя текущего пользователя можно получить с помощью функции GetUserNameA в ADVAPI32. DLL.
Дополнительная информация
Microsoft Excel не имеет встроенные функциональные возможности для доступа к имени пользователя текущего компьютера. Тем не менее можно использовать оператор Declare в Visual Basic для приложений макроса для вызова функции Microsoft Windows, которая возвращает имя текущего пользователя. Корпорация Майкрософт предоставляет примеры процедур Visual Basic для приложений только для иллюстрации и без гарантии или подразумеваемых, включая, помимо прочего, подразумеваемые гарантии товарности или пригодности для определенной цели. Visual Basic процедуры, описанные в этой статье предоставлены «как есть» и корпорация Майкрософт не гарантирует, что они могут использоваться во всех ситуациях. Хотя специалисты службы технической поддержки Майкрософт могут объяснить возможности конкретного макроса, они будут изменять примеры для расширения его функциональности, а также они помогут вам создавать макросы для удовлетворения конкретных потребностей. Если вопросам программирования может потребоваться обратитесь к одной из поставщиков решений корпорации Майкрософт. Поставщики решений предоставляют широкий спектр платных служб, включая создание пользовательских макросов. Дополнительные сведения о поставщиках решений Microsoft вызов сведений служба поддержки клиентов на (800) 426-9400.
ПРИМЕР
-
Введите следующий код в новый модуль:
' Makes sure all variables are dimensioned in each subroutine. Option Explicit ' Access the GetUserNameA function in advapi32.dll and ' call the function GetUserName. Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _ (ByVal lpBuffer As String, nSize As Long) As Long ' Main routine to Dimension variables, retrieve user name ' and display answer. Sub Get_User_Name() ' Dimension variables Dim lpBuff As String * 25 Dim ret As Long, UserName As String ' Get the user name minus any trailing spaces found in the name. ret = GetUserName(lpBuff, 25) UserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1) ' Display the User Name MsgBox UserName End Sub
-
Запустите макрос Get_User_Name. Обратите внимание, что имя текущего пользователя появится в окне сообщения.