Inhaltsverzeichnis
Suchen
Links
|
|
Benutzer- und/oder Computernamen auslesen
Versionen: Excel 97, 2000 und 2002
Diese Aufgabe löst man am besten unter Zuhilfenahme einer Windows-API-Funktion. Dieser Weg ist zuverlässiger als der Einsatz von "Application.UserName", womit nur der Name, der in den Excel-Optionen auf der Registerkarte Allgemein eingetragen ist, ermittelt wird. Dieser Name hat aber nicht unbedingt etwas mit dem aktuell angemeldeten Benutzer zu tun.
Nachfolgenden Code in ein Modul einfügen:
Private Declare Function GetComputerName Lib "kernel32" _
Alias "GetComputerNameA" (ByVal lpBuffer As String, _
nSize As Long) As Long
Private Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, _
nSize As Long) As Long
Public Function ComputerName()
Dim CName As String
Dim CNameLen As Long
Dim RetValue As Long
CNameLen = 256
CName = Space(CNameLen)
RetValue = GetComputerName(CName, CNameLen)
If RetValue <> 0 Then
ComputerName = Left(CName, CNameLen)
Else
ComputerName = "unbekannt"
End If
End Function
Public Function UserName() As String
Dim Buffer As String * 100
Dim BuffLen As Long
BuffLen = 100
GetUserName Buffer, BuffLen
UserName = Left(Buffer, BuffLen - 1)
End Function
Um zum Beispiel die Namen beim Drucken in der Kopfzeile ausgeben zu lassen, verwendet man folgende Prozedur:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Blatt As Object
For Each Blatt In ThisWorkbook.Sheets
Blatt.PageSetup.LeftHeader = UserName & _
" auf " & ComputerName
Next Blatt
End Sub
oder einfach per Anzeige zum Testen:
Sub Anzeige()
MsgBox (UserName & " auf " & ComputerName)
End Sub
|