Recuperar el nombre de usuario de Windows desde VBA

29/05/2008 - 19:27 por Juan in msnews | Informe spam
Hola a todos,

estoy haciendo una macro en Excel, y para construir una ruta a un archivo,
necesito el nombre de usuario de Windows (del usuario que esté en ese
momento ejecutando la macro). ¿Hay alguna forma de conseguir ese dato?

Gracias y un saludo
 

Leer las respuestas

#1 Héctor Miguel
30/05/2008 - 03:33 | Informe spam
hola, Juan !

estoy haciendo una macro en Excel, y para construir una ruta a un archivo
necesito el nombre de usuario de Windows (del usuario que este en ese momento ejecutando la macro).
Hay alguna forma de conseguir ese dato?



con una llamada a las API's de windows... podras hablarle al usuario loggeado en windows
y si quieres... tambien al que esta registrado en la aplicacion (te paso un ejemplo al final)

aunque... (probablemente) te serviria usar otros metodos para "dejar" que el usuario navegue hasta algun directorio -?-

si cualquier duda (o informacion adicional)... comentas?
saludos,
hector.

copia las siguientes lineas...
en un modulo de codigo 'normal' ==' para que el modulo sea 'exclusivo' del codigo NO-disponible al usuario :) '
Option Private Module
' una variable publica para 'almacenar' al usuario loggeado '
Public UsuarioDeSesion As String
' la llamada a las API's '
Declare Function NombreDelUsuario Lib "AdvAPI32.dll" Alias "GetUserNameA" _
(ByVal Almacen As String, Largo As Long) As Long
' la funcion que 'devuelve' el nombre del usuario en la sesion _
esta funcion la podras llamar siempre [si por alguna razon 'se borra' la variable] :( '
Function InicioDeSesion() As String
Dim Nombre As String * 100, Largo As Long
Largo = 100
NombreDelUsuario Nombre, Largo
UsuarioDeSesion = Left(Nombre, Largo - 1)
End Function
en el modulo de codigo del libro [ThisWorkbook] ==Private Sub Workbook_Open()
InicioDeSesion
End Sub
en OTRO modulo de codigo 'normal' ==Sub Nombres()
MsgBox "Aplicacion registrada por: " & Application.UserName & vbCr & _
"Sesion iniciada por... Hola, " & UsuarioDeSesion
End Sub

Preguntas similares