Option Explicit
' --------------------------------------------------------- 
 ' Funktion FindTemp 
 ' Eingestellt von: Andre Schau 
 ' Datum: 5. Juno 2006 
 ' Kommentar: Funktion zur Ermittlung des temporaeren 
 '            Userverzeichnisses 
 ' Parameter: siehe API-Argumente 
 ' Rückgabe:  Pfadangabe 
 ' 
 ' weitere benoetigte Programme und Funktionen 
 ' API-Funktion: GetTempPath 
 ' Aufruf:   Beispiel siehe Sub callFindTemp() 
 ' Hinweis:  Bedingte Kompilierung fuer 32 / 64 bit Systeme 
 ' --------------------------------------------------------- 

#If VBA7 Then
Declare PtrSafe Function GetTempPath Lib "kernel32" Alias _
        "GetTempPathA" (ByVal nBufferLength As LongPtr, ByVal _
        lpBuffer As String) As LongPtr
#Else
Declare Function GetTempPath Lib "kernel32" Alias _
        "GetTempPathA" (ByVal nBufferLength As Long, ByVal _
        lpBuffer As String) As Long
#End If
        
'Konstante fuer maximale Laenge der Pfadangabe 
Public Const MAX_PATH = 260

Sub callFindTemp()
'Variablendeklarartion 
'String 
Dim strPath$
'Temporaeres Verzeichnis ermitteln 
strPath = FindTemp
'Meldung temporaeres Verzeichnis ausgeben 
MsgBox strPath
End Sub

Private Function FindTemp() As String
'Variablendeklarartion 
'Long 
Dim Result&
'String 
Dim Buff$
'Leerstring bilden 
Buff = Space$(MAX_PATH)
'temporaeren Pfad mit API ermitteln 
'Result ergibt Laenge des Pfadnamens 
'bea: Funktion liefert CHR(0) am Ende 
'     des Pfadnamens 
Result = GetTempPath(Len(Buff), Buff)
'buff auf Pfadangabe kuerzen und als 
'Funktionsergebnis zurueckgeben 
FindTemp = Left$(Buff, Result)
End Function