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:
- WMI Win32_NetworkConnection :
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.