×
INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

Question About Code That Grabs Logged On User Name

Question About Code That Grabs Logged On User Name

Question About Code That Grabs Logged On User Name

(OP)
I have an Excel form that uses the code below to get the logged on user's ID.

What is this line of the code doing? Is it subtracting a character where it reads "-1"? Is it removing a character?

CODE --> vba

Private Sub Workbook_Open()
    Dim lpBuff As String * 25
    ret = GetUserName(lpBuff, 25)
    logonUser = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
    ThisWorkbook.Names("CurrUsername").RefersTo = "=" & logonUser
    ThisWorkbook.Names("CurrUserAlias").RefersTo = "=" & logonUser 

RE: Question About Code That Grabs Logged On User Name

It finds position of first Chr(0) in the string, after deducting 1 you get the length of substring before it (initial lpBuff has 25 such characters, GetUserName fills it with logon name).
GetUserName is API function, you can get the same result in VBA with:
logonUser = Environ("UserName")

combo

RE: Question About Code That Grabs Logged On User Name

Hi,

How/where is lpBuff assigned?

That being said, this statement...

CODE

logonUser = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1) 
... is 1) finding where Chr(0) appears in lpBuff, 2) subtracting 1 and then 3) returning that many characters from the left of lpBuff.

Skip,

glassesJust traded in my OLD subtlety...
for a NUance!tongue

RE: Question About Code That Grabs Logged On User Name

(OP)
Thanks for the answers. I was wondering if the code removes any leading zeros. It does not sound like it does.

This is where the name is derived

CODE --> vba

'Windows API
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long 

RE: Question About Code That Grabs Logged On User Name

For an identifier, which is what a UserID is, you wouldn’t want leading zeros removed.

Skip,

glassesJust traded in my OLD subtlety...
for a NUance!tongue

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members! Already a Member? Login

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close