visual programación programacion para lenguaje formularios comandos codigos aplicados vba excel-vba ms-access access-vba

programación - VBA-Nombre de usuario del libro de trabajo abierto(solo lectura)



visual basic excel 2013 (1)

Esto debería ser un comentario, pero mi reputación es muy baja

Lo he visto pero nunca necesité la información ...

Cosas para intentar:

  • ThisWorkbook.UserStatus - array con todos los usuarios actuales para el archivo abierto como exclusivo o compartido
  • Environ ("NOMBRE DE USUARIO")
  • CreateObject ("WScript.NetWork"). Nombre de usuario
  • Llamadas API:

.

Declare Function WNetGetUser Lib "mpr.dll" Alias "WNetGetUserA" ( _ ByVal lpName As String, _ ByVal lpUserName As String, _ lpnLength As Long ) As Long Declare Function GetUserName& Lib "advapi32.dll" Alias "GetUserNameA" _ (ByVal lpBuffer As String, nSize As Long)

.

más detalles sobre estas API:

Public Function GetActiveUser(Optional ByVal computer As String = ".") As String Dim wmi As Object, itm As String On Error Resume Next Set wmi = GetObject("winmgmts://" & computer & "/Root/CIMv2") itm = wmi.ExecQuery("Select UserName from Win32_NetworkConnection", , 48) GetNetActiveUser = itm End Function

Si un libro abierto (ubicado en un servidor) está en modo solo lectura, ¿cómo puedo mostrar el nombre de usuario activo usando VBA?

He .WriteReservedBy pero esto solo muestra el nombre de la persona que guardó por última vez el archivo con una contraseña.