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: