#Excel – Come “catturare” il nome utente [Quick Tip] [VBA]

Mi è capitato recentemente di voler inserire all’interno di un foglio il nome utente di chi, tempo per tempo, stia utilizzando la cartella di lavoro.

Tale informazione non è purtroppo accessibile tramite le funzioni standard di Excel, è stato pertanto necessario creare una funzione personalizzata (User Defined Functions).

Catturare il nome utente di Windows

Apriamo il nostro file di Excel e premiamo la combinazione di tasti Alt+F11 per attivare l’editor VBA. A questo punto inseriamo un nuovo modulo come nella figura seguente:

Excel VBA - Come inserire un modulo standard
Figura 1 – Come inserire un modulo standard

All’interno della finestra che si è appena aperta incollate il seguente codice:

  1. #If Win64 Then
  2. Public Declare PtrSafe Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As LongLong) As Long
  3. #Else
  4. Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
  5. #End If
  6.  
  7. Public Function CatturaUserNameWindows() As String
  8.  
  9. Dim s As String * 255
  10. Dim lLen As Long
  11. Dim sString As String
  12.  
  13. sString = ""
  14. On Error Resume Next
  15. lLen = GetUserName(s, 255)
  16. lLen = InStr(1, s, Chr(0))
  17.  
  18. If lLen > 0 Then
  19. sString = Left(s, lLen - 1)
  20. Else
  21. sString = s
  22. End If
  23. On Error GoTo 0
  24.  
  25. CatturaUserNameWindows = Trim(sString)
  26.  
  27. End Function

Catturare il nome utente di Office

Se invece non volessimo ottenere il nome utente di Windows, ma solamente quello di Microsoft Office (il nome utente che abbiamo inserito alla prima installazione di Office), il codice sarebbe molto più stringato:

LEGGI:  #Excel - Come salvare rapidamente in PDF il foglio attivo [VBA]

  1. Function CatturaUserNameOffice()
  2. CatturaUserNameOffice = Application.UserName
  3. End Function

Utilizzo delle User Defined Functions

A questo punto, qualunque delle due opzioni scegliessimo, vedremmo che Excel riconosce le nostre funzioni personalizzate:

Come utilizzare le User Defined Functions
Figura 2 – Come utilizzare le User Defined Functions
Come utilizzare le User Defined Functions 2
Figura 3 – Ecco gli username apparire su Excel

Bonus Tip – Come modificare il nome utente di Office

L’impostazione del nome utente inserito alla prima installazione di Office può essere modificata in qualsiasi momento attraverso le Opzioni di Office

Come modificare il nome utente di Excel
Figura 4 – Come modificare il nome utente di Excel

In realtà tale modifica, a differenza di quella relativa al nome utente di Windows, può essere effettuata anche tramite poche righe di codice

  1. Public Sub modificaUserNameOffice()
  2.  
  3. With Application
  4. .UserName = "Pippo"
  5. End With
  6.  
  7. End Sub

ATTENZIONE
Con entrambe le modalità, le eventuali modifiche avranno valore per tutte le applicazioni di Microsoft Office (Word, Excel, PowerPoint, ecc.)

Copyright © 2014-2017  Office Academy. Tutti i diritti riservati.
Vai alla barra degli strumenti