title: Use WMI to get current Windows username in VBA
body: <p>I was wondering if there was a simple way to use WMI to get you the current windows user name with domain. The Windows API call just gets you the short username, so you end up doing another call for the domain name. I have some code, but I get an automation error.
  Any ideas? I think I'm on the right path, but I am a little new to WMI.</p>
  
  <pre>
  Function GetFullName() As String
      Dim computer As String
      computer = "."
      Dim objWMIService, colProcessList As Object
      Set objWMIService = GetObject("winmgmts:\\" & computer & "\root\cimv2")
      Set colProcessList = objWMIService.ExecQuery _
          ("SELECT TOP 1 * FROM Win32_Process WHERE Name = 'EXCEL.EXE'")
      Dim uname, udomain As String
      Dim objProcess As Object
      For Each objProcess In colProcessList
          objProcess.GetOwner uname, udomain
      Next
      GetFullName = UCase(udomain) & "\" & UCase(uname)
  End Function
  </pre>
  
  <p>UPDATE: see comments on accepted answer</p>