Аннотация

Можно сделать вызов Windows API (интерфейс прикладного программирования) для Microsoft Windows библиотек DLL (библиотека динамической компоновки) для получения имени текущего пользователя. Имя текущего пользователя можно получить с помощью функции GetUserNameA в ADVAPI32. DLL.

Дополнительная информация

Microsoft Excel не имеет встроенные функциональные возможности для доступа к имени пользователя текущего компьютера. Тем не менее можно использовать оператор Declare в Visual Basic для приложений макроса для вызова функции Microsoft Windows, которая возвращает имя текущего пользователя. Корпорация Майкрософт предоставляет примеры процедур Visual Basic для приложений только для иллюстрации и без гарантии или подразумеваемых, включая, помимо прочего, подразумеваемые гарантии товарности или пригодности для определенной цели. Visual Basic процедуры, описанные в этой статье предоставлены «как есть» и корпорация Майкрософт не гарантирует, что они могут использоваться во всех ситуациях. Хотя специалисты службы технической поддержки Майкрософт могут объяснить возможности конкретного макроса, они будут изменять примеры для расширения его функциональности, а также они помогут вам создавать макросы для удовлетворения конкретных потребностей. Если вопросам программирования может потребоваться обратитесь к одной из поставщиков решений корпорации Майкрософт. Поставщики решений предоставляют широкий спектр платных служб, включая создание пользовательских макросов. Дополнительные сведения о поставщиках решений Microsoft вызов сведений служба поддержки клиентов на (800) 426-9400.

ПРИМЕР

  1. Введите следующий код в новый модуль:

        ' 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
  2. Запустите макрос Get_User_Name. Обратите внимание, что имя текущего пользователя появится в окне сообщения.

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.