Me alegro que te funcione. Tuve que investigar un poco para que me funcionara en 64 bits.
El método es muy sencillo. Tienes que escribir la subrutina para el evento de activación del formulario en la cual haces que se introduzca el nombre de usuario en el textbox y luego desactivas el botón.
Primero tiene que haber una forma de mostrar el formulario, por ejemplo pulsando un botón que tengas en la hoja, o el iniciar la macro, etc. En la hoja del botón estaría esta subrutina.
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
Luego debe haber un módulo con la declaración de la función de advapi32.dll
Declare PtrSafe Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As LongPtr
He puesto la declaración de 64 bits, si tienes windows de 32 usa la otra declaración
Y luego la subrutina de activación del formulario que debe estar en el código del formulario
Private Sub UserForm_Activate()
Dim lpBuff As String * 25
Dim ret As LongPtr, UserName As String
ret = GetUserName(lpBuff, 25)
TextBox1.Text = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
TextBox1.Enabled = False
End Sub
Si tu Windows es de 32 usas las líneas propias de la versión de 32 bits.
Y eso es todo. Si no te sale mándame tu correo y te mando el ejemplo que he hecho.
Si tienes otra consulta puedes mandármela como pregunta nueva, porque aunque no estoy disponible en Excel lo estoy en Matemáticas.