Hola....
Aunque no he comprobado el tema de la variable pública, considero que no merece la pena perder más tiempo si tu ya lo has investigado, asi que he tratado de buscar la mejor solución posible.- Te la cuento:
-Se trata de jugar con las propiedades internas del Excel.- El truco consistiría en grabar el usuario "activo" en una propiedad interna del archivo excel, con lo cual, lo puedes leer en cualquier momento, e incluso saber quien ha sido el último usuario en utilizalo, ya que las propiedades no se pierden al cerrar el libro.
Aqui te expongo el código necesario para tales operaciones:
Private Sub Button1_click() 'Da igual si pones Public Sub...
'Creamos la variable con el valor del usuario
ThisWorkbook.CustomDocumentProperties.Add "Propiedad_creada_por_ti", false, msoPropertyTypeString, usuario 'Usuario sería el valor de texto del textbox1
' En otro apartado, formulario, o lo que desees, puedes leer el valor de la variable con esto:
ThisWorkbook.CustomDocumentProperties("Usuario").value
End Sub
- No he encontrado la forma de borrar la variable, pero la puedes asignar valor nulo, y es como si estuviese borrada.
- Tambien puedes ver la variable creada, directamente desde la hoja de cálculo, en el menú "Archivo->Propiedades", y luego en la pestaña "Personalizar".
- Otra ventaja de este sistema, es que puedes utilizar el sistema de "WorkBook" para establecer permisos, dejarlo solo como "de lectura" para un usuario concreto, o denegar el acceso, todo mediante las propiedades del "WorkBook" ->
Aqui te envio una relaccion de estas propiedades <-
En fin, espero que esta solucion te guste y sea buena para tu proyecto...
Un saludo.