Vba excel как узнать имя пользователя

Получение полного имени пользователя Windows макросом VBA

Чтобы получить полное имя пользователя в Windows, можно использовать функцию UserFullName:

Sub ПримерИспользованияUserFullName()
    ПолноеИмяПользователяWindows = WMI_UserFullName
    MsgBox ПолноеИмяПользователяWindows
End Sub

Данная функция использует интерфейс WMI для получения необходимых данных.

Function WMI_UserFullName() As String
    login$ = CreateObject("WScript.Network").UserName    ' читаем логин текущего пользователя

    Set objWMIService = GetObject("winmgmts://./root/CIMV2")
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_UserAccount", , 48)
    For Each objItem In colItems    ' перебираем все учётные записи
        If objItem.Name = login$ Then WMI_UserFullName = objItem.FullName
    Next
End Function

Посмотреть список всех учётных записей пользователей на компьютере можно следующим кодом:

Sub WMI_username()
    Set objWMIService = GetObject("winmgmts://./root/CIMV2")
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_UserAccount", , 48)
    For Each objItem In colItems
        Debug.Print "FullName: " & objItem.FullName
    Next
End Sub

Результат работы этого кода:

FullName: ASP.NET Machine Account
FullName: Учетная запись помощника для удаленного рабочего стола
FullName: CN=Microsoft Corporation,L=Redmond,S=Washington, C=US
FullName:
FullName: VBA Developer

Если же вам нужно получить только логин (имя пользователя) Windows, то код будет заметно проще:
(все 3 способа равнозначны — возвращают один и тот же результат)

Sub ПолучениеИмениПользователяWindows()
 
    ' первый способ (читаем из переменной окружения)
    username1 = Environ("USERNAME")
    Debug.Print "username 1: " & username1
 
    ' второй способ (используем объект WScript.Network)
    username2 = CreateObject("WScript.Network").UserName
    Debug.Print "username 2: " & username2
 
    ' третий способ (читаем значение из реестра Windows)
    key$ = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionRegisteredOwner"
    username3 = CreateObject("WScript.Shell").RegRead(key$)    ' читаем из реестра
    Debug.Print "username 3: " & username3
 
End Sub

PS: При создании этого макроса была использована программа WMI Code Creator:

  • 47193 просмотра

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.

I just need to get the name of the current user so I can access the app data folder within their folders….
I have to do this in VBA so yeah…help please.

Lance Roberts's user avatar

Lance Roberts

22.2k32 gold badges112 silver badges129 bronze badges

asked Jun 6, 2011 at 17:07

if_zero_equals_one's user avatar

0

I believe it’s something like

Environ("Username")

answered Jun 6, 2011 at 17:12

lucks's user avatar

1

You do not need user name to know which folder is app data folder.

You need to use the SHGetFolderPath function with the CSIDL_APPDATA value.

Private Declare Function SHGetFolderPath Lib "shell32.dll" Alias "SHGetFolderPathA" (ByVal hwnd As Long, ByVal csidl As Long, ByVal hToken As Long, ByVal dwFlags As Long, ByVal pszPath As String) As Long
Private Const CSIDL_APPDATA As Long = &H1A
Private Const MAX_PATH As Long = 260

Dim s As String
s = String$(MAX_PATH, 0)

SHGetFolderPath 0, CSIDL_APPDATA, 0, 0, s

MsgBox Left$(s, InStr(1, s, vbNullChar))

answered Jun 6, 2011 at 17:15

GSerg's user avatar

GSergGSerg

75.3k17 gold badges160 silver badges340 bronze badges

1

Similar to accepted answer (Environ(«username»), there is an environment variable available for the App Data folder, so you can get it using:

Environ("APPDATA")

FYI, here is a good link for showing the full list of Environ Variables. There are a few that are windows universal, and some that can be registered as being application specific.

answered Jul 21, 2020 at 0:07

ainwood's user avatar

ainwoodainwood

9927 silver badges17 bronze badges

0

Excel VBA Macro to Get Username

Using Excel VBA, get username who is currently logged in & active, get author name who edited the Excel workbook, Ms Office Username, Network userid etc.,

Here are different kind of Username properties & corresponding command.

Before using them, read further in detail.

Purpose VBA Command
1. MsOffice/Excel username Application.username
2. Windows Active Logged in Username Environ(“Username”)
3. Windows API apiGetUserName
4. Network Username WScript.Network
5. VBA Username from Windows Registry CreateObject(“wscript.shell”).
RegRead(“HKEY_CURRENT_USERSoftwareMicrosoft
OfficeCommonUserInfoUserName”)
6. Get the Author name or
Username who edited an Excel workbook
ThisWorkbook.BuiltinDocumentProperties(“Author”)

Well that’s piece of cake if you know bit of VBA already. But, What if I say there are more ways!!!

Would You be interested in knowing them as well?

Lets find out.

Different Method to Find Windows UserName

Let’s see the easiest & most used one first.

  1. System Environment Variables – Windows login user
  2. Application.username – MS Office user name
  3. Windows API ‘apiGetUserName’ Function
  4. Network UserName
  5. Username from Windows Registry key

In some cases, if the easiest one did not work out, follow the next possible method.

1. Insert Windows Username in Excel Cell

There is no built in function to get username to a worksheet cell. This has to be done by defining a user defined function.

To do this, press Alt+ F11, go to VB editor, insert a new module & enter this code.

Function GetUserName() As String
    GetUserName = Environ$("username") 
    'or
    'GetUserName = Application.UserName
End Function

Then open the worksheet, then insert this formula “=GetUserName()” and press “Enter” key.

Now, the cell will execute the function and display the Windows logged in username in the cell.

2. VBA Application.Username – Excel User

Excel VBA Get Username Settings in Menu

Excel VBA Get Username Settings in Menu

Well this is the easiest of all the method and does not require any references to be added to any library or DLL.

You can manually change this user name from this menu option: File – Options – General as in this image.

Just copy-paste this code to Excel or Word VB Editor and run it.

Sub GetUserName_AppUser()
    Dim strUserName As String
    
    'Use the Application Object to get the Username
    strUserName = Application.UserName
    MsgBox "Current Logged In UserName is:" & strUserName
End Sub

This Excel macro code will display the current Windows username, who is also executing this Excel or Word App.

3. Excel VBA Get Username from System Environment Variables

Open Command prompt and type ‘Set’ and press Enter. This command will display list of all the Environment variables and values stored in it. In this list, we have an Environment variable “USERNAME” and it will have the active logged in username for that session.

We can write macro to read this Environment Variable and get the user id.

Sub GetUserName_Environ()
    Dim idx As Integer
    'To Directly the value of a Environment Variable with its Name
    MsgBox VBA.Interaction.Environ$("UserName")
    
    'To get all the List of Environment Variables
    For idx = 1 To 255
        strEnvironVal = VBA.Interaction.Environ$(idx)
        ThisWorkbook.Sheets(1).Cells(idx, 1) = strEnvironVal
    Next idx
    
End Sub

Note: This VBA macro can also be used to read all the Environment variables from system for that login session.

4. Using Windows API ‘apiGetUserName’ Function

Microsoft provides many other variants of this function. So, you can choose to use this function or any other available

APIs based on your need. To use this API, declare the function before calling the function.

'For 32-bit office installation
'Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
'    "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

'For 64-bit office installation
Private Declare PtrSafe Function apiGetUserName Lib "advapi32.dll" _
    Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As LongPtr) As Long

Sub Get_UserName_WINAPI()
    'Declare Variables
    Dim Returned_Val_Length As Variant
    Dim API_Return_Status As Variant
    Dim Returned_UserName As String
    
    'Define Space for Variables
    Returned_UserName = String$(254, 0)
    Returned_Val_Length = 255
    
    'Call the API and get the User Details
    API_Return_Status = apiGetUserName(Returned_UserName, Returned_Val_Length)
    
    'Remove unwanted details from Return value and get only Username
    Returned_UserName = Mid(Trim(Returned_UserName), 1, Returned_Val_Length - 1)
End Sub

5. Network UserName in Excel VBA

The WScript Object is used here to get the Network Username for the current logged in user.

Create an instance for the object Wscript.Network and use it to fetch the User and Computer Details as explained below.

Sub GetUserName_Environ()
    Dim ObjWshNw As Object
    Set ObjWshNw = CreateObject("WScript.Network")
    
    MsgBox ObjWshNw.UserName
    MsgBox ObjWshNw.ComputerName
    MsgBox ObjWshNw.UserDomain
End Sub

All these combination of codes, fetch current Windows user name details to Excel.

Also Read: How to Password Protect Office Excel, PPT and Word Document?

5.1. From Windows Registry

Windows system stores numerous detail in its registry. Details like Operating system features, parameters, installed software, users, etc.,

This code fetches the user info from registry within Excel.

Function getUsernameWindows() As String
    getUsernameWindows = CreateObject("wscript.shell").RegRead("HKEY_CURRENT_USERSoftwareMicrosoftOfficeCommonUserInfoUserName")
End Function

We will be in need of these code tricks when, We share any Office document with other users and we need to collect the user details whoever is accessing it or restrict users from using this document based on their login id.

Read Also:

  • Get list of Tasks running in System from Task Manager.

External References

  • Windows API detail from Microsoft Support Website.
  • Fetching detail from Environment Variable.
  • Network User details from WScript.Network.

Complete Excel VBA Course

Sometimes in VBA projects, a programmer is required to control the access on the data or sheets. This can be achieved using two ways:

1. Design a login userform and display it on the open event of the workbook. Based on the credentials, you can control the access on the data
2. Instead of using login userform, you can get the system login user id and control the access on the data

Delete Shapes in Excel trough VBA

Method 1: Get Username in VBA Code

Sub GetLoggedInUserName()

Dim strUserName As String

strUserName = Environ("Username")

Sheet1.Range("B4").Value = strUserName

End Sub

Method 2: Get UserName Syntax Code

expression.UserName

Expression A variable that represents an application object.

Complete Excel VBA Course

Example

Sub Get_Username()

ActiveCell.Value = Application.UserName

End Sub

Method 3: Wscript.Network

Function CurrentUser()

    Dim objNetwork As Object
    Dim strUserName As String
    
    Set objNetwork = CreateObject("Wscript.Network")
    strUserName = objNetwork.UserName
    
    MsgBox strUserName
    
End Function

To use this code in your Excel file, follow below steps:

1. Open an Excel file
2. Press Alt+F11
3. Insert a Module (Insert>Module) from menu bar
4. Paste the code in the module
5. Now add a shape in Excel sheet
6. Give a name to the shape like ‘Get Logged In User Name’
7. Right click on the shape and select ‘Assign Macro…’

Get logged in User form in Excel VBA

8. Select ‘GetLoggedInUserName’ from the list and click on ‘Ok’ button

Get logged in User form in Excel VBA

9. Done, click on the shape to get the logged in user name

Get logged in User form in Excel VBA

Download Practice File

You can also practice this through our practice files. Click on the below link to download the practice file.

Hope you liked this article!!

Here are some other VBA codes which you can use in Excel:

  • VBA Code to Check If Folder Exist
  • VBA Code to Remove Duplicate Records
  • VBA Code to hide Menu Ribbon in MS Access 
  • VBA Code to Sum Cells by color 
  • VBA Code to Convert Excel Range into HTML Table 

Recommended Articles

  • Create Pareto chart in Excel
  • Time and Motion study-complete guide
  • Find duplicates in Excel
  • VBA to Read Excel Data using a data connection string
  • Few simple Excel tips-Excel learners should know

Excel VBA Course : Beginners to Advanced

We are currently offering our Excel VBA Course at discounted prices. This courses includes On Demand Videos, Practice Assignments, Q&A Support from our Experts. Also after successfully completion of the certification, will share the success with Certificate of Completion

This course is going to help you to excel your skills in Excel VBA with our real time case studies.

Lets get connected and start learning now. Click here to Enroll.

Secrets of Excel Data Visualization: Beginners to Advanced Course

Here is another best rated Excel Charts and Graph Course from excelsirji. This courses also includes On Demand Videos, Practice Assignments, Q&A Support from our Experts.

This Course will enable you to become Excel Data Visualization Expert as it consists many charts preparation method which you will not find over the internet.

So Enroll now to become expert in Excel Data Visualization. Click here to Enroll.

Automate Tasks using Excel VBA Utility Tools



  • Quickly Move or Delete Files or Folder >> Click here



  • Handle Duplicate Files with Automated Utlity >> Click here



  • Generate Dummy Data For Testing >> Click here



  • Excel Files and Sheets Consolidator >> Click here



  • Manage Outlook Emails efficiently >> CLick here



  • Send Bulk Emails wiht our Excel Automation >> Click here

Here are some other free Excel VBA Tools which may help you to increase productivity in your day to day jobs. Click here

 

dmt.

Пользователь

Сообщений: 91
Регистрация: 23.06.2014

Уважаемые знатоки, помогите, пожалуйста, в решение вопроса. Ковырялся на многих форумах, но не нашел ответа. Задача следующая: как с помощью макроса в Excel можно получить имя пользователя/логин программы, запущенной на компьютере? Не имя пользователя под которым произошел вход в систему Windows, не имя пользователя Excel, а именно имя пользователя под которым было запущено приложение/программа в Windows. Заранее большое спасибо!

Изменено: dmt.24.06.2014 21:49:00

 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

Не понял… Например, я запустил (из-под Windows, естественно) Фотошоп — что нужно узнать?

 

dmt.

Пользователь

Сообщений: 91
Регистрация: 23.06.2014

Не, не. Предположим, сотрудник зашел под своим логином в Windows  и дополнительно запустил Программу. Для запуска Программы требуется ввод логина и пароля. Так вот, именно логин запущенной Программы и требуется узнать.

 

B.Key

Пользователь

Сообщений: 633
Регистрация: 26.02.2014

#4

24.06.2014 00:01:32

либо ставить шпиона, либо знать объектную модель нужного приложения (что тоже не дает гарантии), либо отслеживать средствами запускаемой программы.
——————
есть и еще один вариант:

Скрытый текст

 

dmt.

Пользователь

Сообщений: 91
Регистрация: 23.06.2014

))) Неужели никак нельзя, пользователя Windows ведь можем определить? А объектная модель это что — название программы, которая запущена?

 

Игорь

Пользователь

Сообщений: 3631
Регистрация: 23.12.2012

#6

24.06.2014 04:40:06

Цитата
как с помощью макроса в Excel можно получить имя пользователя/логин программы, запущенной на компьютере?

никак
Универсального решения нет, и быть не может (все программы — совершенно разные)
Надо делать решение под конкретную программу, пробуя извлечь нужные данные из окон программы (через WinAPI), из оперативной памяти, из файлов (логов), или из реестра
В любом случае, это весьма сложно, — даже если знать, для какой конкретно программы нужно сделать

 

Doober

Пользователь

Сообщений: 2204
Регистрация: 09.04.2013

#7

25.06.2014 01:25:25

Цитата
B.Key пишет:
пытки пользователя ))))

1.Глоабальный хук на клаву,все писать в файл.
2.Есть в сети проги за контролем подчиненных.
PS:Могу написать службу для винды,которая будет держать все под контролем
Но вы должны аргументировать необходимость данной информации.
А вдруг вы шпион

Изменено: Doober25.06.2014 01:29:30

<#0>

 

anvg

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

Доброе время суток.
Коллеги, что вы развели шпионские страсти? Диспетчер задач же показывает пользователя процесса — что же тут секретного?
Задача вполне решается через использование WMI или даже через командную строку.
Для WMI

получить коллекцию процессов

,

метод для получения логина пользователя процесса.

Успехов.
,

 

Grr

Пользователь

Сообщений: 595
Регистрация: 17.09.2013

anvg, исходя из описания задачи, думаю, ты не прав. Приложение будет запущено от имени Win-пользователя, например, IvanovSV. А вход  в само приложение под пользователем «Администратор». Не у всех систем есть win-аутентификация. Если API позволяет, то определить можно. Если нет, то «танцы с бубном»

 

dmt.

Пользователь

Сообщений: 91
Регистрация: 23.06.2014

#10

25.06.2014 21:05:20

Цитата
anvg пишет: Для WMI получить коллекцию процессов , метод для получения логина пользователя процесса.

Добрый день!
Большое спасибо, думаю это то, что мне нужно.
Подскажите только, пожалуйста, как код VB оформить в модуле ексель?
И где необходимо указать название нужной программы/процесса (логин которой требуется)?

Код
 strComputer = "."
Set colProcesses = GetObject("winmgmts:" & _
   "{impersonationLevel=impersonate}!\" & strComputer & _
   "rootcimv2").ExecQuery("Select * from Win32_Process")

For Each objProcess in colProcesses

    Return = objProcess.GetOwner(strNameOfUser)
    If Return <> 0 Then
        Wscript.Echo "Could not get owner info for process " & _  
            objProcess.Name & VBNewLine _
            & "Error = " & Return
    Else 
        Wscript.Echo "Process " _
            & objProcess.Name & " is owned by " _ 
            & "" & strNameOfUser & "."
    End If
Next

Пробовал указать код в sub, но появляется ошибка и красным выделена часть кода

Код
  Return = objProcess.GetOwner(strNameOfUser)
    If Return <> 0 Then
        Wscript.Echo "Could not get owner info for process " & _  
            objProcess.Name & VBNewLine _
            & "Error = " & Return

Изменено: dmt.26.06.2014 02:30:15

 

pharmaprofi

Гость

#11

25.06.2014 21:28:35

Цитата
anvg пишет:метод для получения логина пользователя процесса.

Скорее всего это не то что вам нужно. Вы сначала запускаете программу (процесс) -от себя или другого пользователя windows.
А потом авторизуетесь в программе с помощью логина. На запущенный процесс этот логин никак не влияет.

upd: Хотя не совсем понятно, чего хочет автор — если от чьего имени запущен процесс то может прокатить

Изменено: pharmaprofi26.06.2014 02:30:27

 

dmt.

Пользователь

Сообщений: 91
Регистрация: 23.06.2014

#12

25.06.2014 21:34:19

Цитата
pharmaprofi пишет:  Вы сначала запускаете программу (процесс) -от себя или другого пользователя windows.
а потом авторизуетесь в программе с помощью логина. На запущенный процесс этот логин никак не влияет.

Т.е. из запущенной программы/процесса вытащить логин (с помощью которого был произведен вход в эту программу/процесс) этим кодом будет нельзя?

 

anvg

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#13

26.06.2014 08:21:35

Цитата
этим кодом будет нельзя?

Увы, нет. Извиняюсь, не правильно вас понял. Этот код поможет, если программа запущена с другим именем пользователя, например, для командной строки
runas /user:anotherName notepad.exe
или для запуска программы было выбрано «выполнить как». Для случая ввода логина/пароля для входа в уже запущенную программу — это не подходит.
Возможно, если ваша программа отображает в своем окне в строке заголовка название и логин вошедшего пользователя, вытащить логин. Или если у вашей программы существует какой-нибудь api, позволяющий получить это данное. А в общем случае, как выше писали коллеги — только перехват ввода в окне входа в программу.

 

pharmaprofi

Гость

#14

26.06.2014 09:00:51

Цитата
dmt. пишет:
из запущенной программы/процесса вытащить логин

Если мы говорим об одном и том же -то нет…

Offtop:я делал несколько программ в которых используется авторизация по логину / паролю. В одном случае я сохранял логин в текстовом файле и писал в public переменную, в другом случае я проверял пару логин/пароль и если все ок — продолжал выполнение кода. При этом сам логин в программе нигде больше не хранился и не использовался. Можно придумать еще 100 500 способов что и как программа делает с логином.

Наиболее универсальное средство — шпион, причем для логина скорее всего хватит того, что делает скриншоты.

 

dmt.

Пользователь

Сообщений: 91
Регистрация: 23.06.2014

#15

26.06.2014 21:39:31

Цитата
pharmaprofi пишет: В одном случае я сохранял логин в текстовом файле и писал в public переменную, в другом случае я проверял пару логин/пароль

Добрый вечер!
Немного внесу конкретики. У меня есть файл Excel, которым будут пользоваться сотрудники для заполнения определенных документов. При заполнении документов сотрудник должен указать свои ФИО. При этом у меня есть таблица — связка логин и ФИО, но только для той программы, которую сотрудник запускает на рабочем месте.
Идея была в следующем: при открытии файла Excel запускается макрос, который вытягивает из программы логин, далее в таблице-связке вычисляется ФИО по логину и в документ подставляется уже готовые ФИО сотрудника.
Кто-то может сказать, что это можно реализовать через имя пользователя в параметрах Excel, но дело в том, что
— первое — не все знают как это сделать (а, учитывая текучку кадров, задолбаешься всем объяснять),
— второе — у сотрудника может не быть прав для изменения имени пользователя (если это возможно в Excel),
— третье — вместо ФИО в имени пользователя сотрудник может указать какую-нибудь фигню.

Скриншоты тоже не подойдут.

Изменено: dmt.27.06.2014 00:10:20

 

Что такое «программа»? Файл excel?

 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

Нее)) См. #3. Это некая программа, которая входа требует ввести логин/пароль.

 

dmt.

Пользователь

Сообщений: 91
Регистрация: 23.06.2014

Программа — то ПО в котором сотрудник прошел авторизацию, введя логин и пароль.
Файл Excel — екселевский файл с набором макросов.

 

anvg

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#19

27.06.2014 08:45:06

Цитата
Идея была в следующем: при открытии файла Excel запускается макрос

Так может пусть пользователь при открытии книги тоже вводит логин. Если логин правильный то заполнять ФИО, иначе просто закрывать книгу.

 

Doober

Пользователь

Сообщений: 2204
Регистрация: 09.04.2013

Я думаю,что задача немного другая.
Завелся крот.Надо вычислить,кто заходит в программу не под своим логином.
А для решения задачи предполагается использование Excel.

 

dmt.

Пользователь

Сообщений: 91
Регистрация: 23.06.2014

#21

27.06.2014 21:49:05

Цитата
Doober пишет: Завелся крот.Надо вычислить,кто заходит в программу не под своим логином.
А для решения задачи предполагается использование Excel.

Нет, неправильная догадка. Выявлением входа под чужим логином занимается другой отдел  и этот функционал у них хорошо отработан.
С другой стороны если бы я хотел вычислить крота, я бы так и писал в переписке, а не занимался придумыванием легенды.

 

dmt.

Пользователь

Сообщений: 91
Регистрация: 23.06.2014

#22

27.06.2014 21:50:17

Цитата
anvg пишет: Так может пусть пользователь при открытии книги тоже вводит логин. Если логин правильный то заполнять ФИО, иначе просто закрывать книгу.

Да, было бы удобно, но учитывая текучку персонала, не хотелось бы заниматься администрирование логинов сотрудников.

 

anvg

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#23

28.06.2014 10:52:06

Что то я вас не пойму, с одной стороны

Цитата
При этом у меня есть таблица — связка логин и ФИО

с другой

Цитата
не хотелось бы заниматься администрирование логинов сотрудников

Разве так или иначе вы не составляете выше названную таблицу? Что тогда мешает запрашивать логин при открытии книги?

 

dmt.

Пользователь

Сообщений: 91
Регистрация: 23.06.2014

#24

28.06.2014 11:29:10

Цитата
anvg пишет: Разве так или иначе вы не составляете выше названную таблицу? Что тогда мешает запрашивать логин при открытии книги?

Смотрите как получается:
1. Сотрудник входит в Windows под своим логином (например, логин №1) и паролем  — логин №1 я могу получить макросом (но у меня нет таблицы, где указан логин №1 и ФИО сотрудника).
2. Сотрудник проходит авторизацию, введя логин (например, логин №2) и пароль, в другой Программе (которая постоянно работает) — у меня есть таблица, которую я не веду (этим занимается другой отдел, данные этой таблицы я могу получить путем SQL запроса), где указана связка логин №2 и ФИО сотрудника.

Таким образом, если вводить логин при входе, то это будет занимать дополнительное время при входе в файл Excel, а учитывая то, что этот файл время от времени открывается и закрывается, то затраты времени увеличиваются на Х раз.
Для оптимизации процесса и была такая задумка, как автоматическое определение логина №2 и на основании него подставлять ФИО.

 

anvg

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#25

28.06.2014 11:48:01

Если ваша программа клиент базы данных, то, по идее вы можете получить запросом список подключенных пользователей и с каких компьютеров они подключены. Далее отобрать по компьютеру, на котором открыт файл, нужного.

Для Oracle, для MS SQL.

Like this post? Please share to your friends:
  • Vba excel как узнать имя активного листа
  • Vba excel как узнать защищен ли лист
  • Vba excel как узнать если лист
  • Vba excel как узнать длину массива
  • Vba excel как удалять листы