Einfügen des Benutzernamens in eine Zelle (Microsoft Excel)
Sunlim stellte fest, dass der Benutzer bei der Installation von Office seinen Namen angibt. Auf diesen Namen kann in einigen Office-Programmen zugegriffen werden, z. B. in Word. Sunlim fragt sich, wie er auf den Benutzernamen in Excel zugreifen und diesen Namen in eine Zelle einfügen kann.
Die Möglichkeit hierfür besteht darin, ein kurzes einzeiliges Makro zu implementieren, das auf die Eigenschaft UserName des Anwendungsobjekts zugreift. Diese Technik wird in einer anderen Ausgabe von _ExcelTips beschrieben: _
http://excelribbon.tips.net/T009814
Mit diesem Ansatz können Sie den Benutzernamen ermitteln, der mit der aktuellen Installation von Excel verknüpft ist. Dies ist jedoch möglicherweise nicht dasselbe wie die Person, die die aktuelle Arbeitsmappe verwendet. Wenn die Arbeitsmappe beispielsweise freigegeben ist, können sie möglicherweise von mehreren Personen gleichzeitig verwendet werden. In diesem Fall benötigen Sie eine Möglichkeit, diese Namen zu bestimmen, wie hier gezeigt:
Function UserNames() As String Dim Users As Variant Dim sMsg As String Dim iIndex As Integer Users = ActiveWorkbook.UserStatus For iIndex = 1 To UBound(Users, 1) sMsg = Users(iIndex, 1) & vbLf Next iIndex 'remove final line feed sMsg = Left(sMsg, Len(sMsg) - 1) UserNames = sMsg End Function
Um die Funktion zu verwenden, geben Sie einfach die folgende Formel in die Zelle ein, in der die Namen angezeigt werden sollen:
=UserNames
Wenn Sie stattdessen wissen möchten, wer den Computer derzeit verwendet, sollten Sie über Office hinausblicken und stattdessen den Namen von Windows selbst abrufen. Auf diese Weise können Sie bestimmen, wer bei Windows angemeldet ist, und diesen als Benutzernamen verwenden. Dies erfordert eine API-Funktionsaufrufdeklaration, ist aber ansonsten relativ einfach:
Private Declare Function GetUserName Lib "advapi32.dll" _ Alias "GetUserNameA" (ByVal lpBuffer As String, nSize _ As Long) As Long Function UserName2() As String Dim strBuff As String * 100 Dim lngBuffLen As Long lngBuffLen = 100 GetUserName strBuff, lngBuffLen UserName2 = Left(strBuff, lngBuffLen - 1) End Function
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (12745) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: