Find brugernavn / login

Makro til finde brugernavnet på den person som er logget på computeren

 

Hvis man får brug for at kende navnet på den person som bruger et regneark, bruger mange Application.Username.
Application.Username finder godt nok navnet på den person som er registreret som bruger i Excel, men da dette navn kan ændres af brugeren selv, kan brugeren 'bare' angive et andet navn og dermed få adgang til dit regneark.

Funktionen herunder finder i stedet navnet på den bruger som er logget på computeren og det er i de fleste virksomheder ikke muligt for en bruger at rette sit egent brugernavn.
Scriptet er kompatibelt med både 32 og 64 bit version af Excel.

Eksempel:
Når nedenstående kode er sat ind i dit regneark, kan du kalde funktionen både direkte i dit regneark og via VBA.
I dit regneark kan du skrive =BrugerNavn() i en celle. Funktionen vil skrive dit brugernavn i cellen.
Via VBA kan funktionen kaldes f.eks. ved: If Brugernavn() = "ole" Then ........

Sæt nedenstående kode ind i et modul.

'*******Allan Thustrup Mortensen - Excel-regneark.dk *********
'*************************************************************
#If Win64 Then
    Private Declare PtrSafe Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
#Else
    Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
#End If

Function Brugernavn() As String
Application.Volatile
Dim Buffer As String * 100
Dim BuffLen As Long
BuffLen = 100
GetUserName Buffer, BuffLen
Brugernavn = LCase(Left(Buffer, BuffLen - 1))
End Function

 

 

Opdateret 10-02-2017 14:59:19