| home |  
  

   © 2005 by Friedel Schmidt •  E-Mail  •                      Top  

   | impressum | feedback | home |  


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 LongAs Long

Private Declare Function GetUserName Lib "advapi32.dll" _
  Alias "GetUserNameA" (ByVal lpBuffer As String, _
  nSize As LongAs 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