Log File using VBA in Excel XP or 97

R

rcweinbe

I am trying to use VBA in an Auto_Open Macro in Excel XP. I am tryin
to log the username that is stored in the system registry under th
actual username and not just the application's username which may be
generic or blank name. Here's what I have:

Private Sub Workbook_Open()
LogInformation ThisWorkbook.Name & "; " & Now() & "; Opened By "
_
Application.UserName & "; Printer: "
Mid(Application.ActivePrinter, 12, 8)

End Sub
Sub LogInformation(LogMessage As String)

Const LogFileName As String = "P:\Rick\Lo
Files\Daily_Report\DailyReportLog.log"
Dim FileNum As Integer
FileNum = FreeFile ' next file number
Open LogFileName For Append As #FileNum ' creates the file if i
doesn't exist
Print #FileNum, LogMessage ' write information at the end of th
text file
Close #FileNum ' close the file

End Sub

Any ideas how to get the System User Name from the registry or an
other location?

Thanks,

Ric
 
T

Tom Ogilvy

From: Trevor Shuttleworth ([email protected])
Subject: Re: Code to show login name
Newsgroups: microsoft.public.excel.programming
Date: 2001-01-16 12:54:01 PST




Private Declare Function apiGetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, nsize As Long) As Long

Sub GetUserNameTest()
MsgBox fOSUserName
End Sub

Function fOSUserName() As String
' Returns the network login name
Dim lngLen As Long, lngX As Long
Dim strUserName As String
strUserName = String$(254, 0)
lngLen = 255
lngX = apiGetUserName(strUserName, lngLen)
If lngX <> 0 Then
fOSUserName = Left$(strUserName, lngLen - 1)
Else
fOSUserName = ""
End If
End Function

Regards

Trevor
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top