Log File using VBA in Excel XP or 97

  • Thread starter Thread starter rcweinbe
  • Start date Start date
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
 
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
 
Back
Top