Name + User?

2 Antworten

In vba kann man mir application.user oder so ähnlich ohne die Windows DLL den user erhalten.

Dann spart man sich auch die kompilier Optionen für Excel 64bit oder vba7.

Du musst Declare 36 durch Declare Function ersetzen. Außerdem musst du mit den Datentypen etwas herumspielen.

Folgender Code erzeugt zunächst keinen Fehler bei mir:

Private Declare PtrSafe Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As LongLong) As LongPtr

https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/ptrsafe-keyword

https://docs.microsoft.com/de-de/office/client-developer/shared/compatibility-between-the-32-bit-and-64-bit-versions-of-office

MustafaFreiburg 
Fragesteller
 01.04.2022, 10:55

Datum Funktion geht.

Ich habe jetzt ein Problem mit den User Funktion.

Der Satz wird gelb markiert "Private Function GetNTUserA() As String"

Wie fern müsste ich etwas anpassen?

Private Function GetNTUserA() As String

  

 Dim sBuffer As String

 Dim LSize As Long

 Dim user As String

  

 sBuffer = Space$(255)

 LSize = Len(sBuffer)

  

 Call GetUserName(sBuffer, LSize)

  

 If LSize > 0 Then

  user = Left$(sBuffer, LSize - 1)

 Else

  user = vbNullString

 End If

  

 GetNTUserA = user

  

End Function

0