Option Explicit
Option Private Module
' ---------------------------------------------------------
' Funktion myDrives
' Eingestellt von: Andre Schau
' Datum: 2011-09-10
' Kommentar:
' Parameter:
' Rückgabe: verfuegbare Laufwerke
' Aufruf:
' Sub Call_myDrives()
' MsgBox "Vefuegbare Laufwerke: " & myDrives()
' End Sub

' Deklarierung der API-Funktion
Private Declare Function GetLogicalDriveStrings Lib "kernel32.dll" _
  Alias "GetLogicalDriveStringsA" ( _
  ByVal nBufferLength As Long, _
  ByVal lpBuffer As StringAs Long

' Aufruf
Sub call_myDrives()
MsgBox "Vefuegbare Laufwerke: " & myDrives()
End Sub

Private Function myDrives()
' Variablendeklaration
'Long
Dim retval&
'String
Dim strBuffer$
  ' Laufwerksbuchstaben ermitteln
  strBuffer = Space(256)
  ' API Argumente Länge des String fuer Laufwerke, String fuer Laufwerke
  retval = GetLogicalDriveStrings(Len(strBuffer), strBuffer)
  'String strBuffer kuerzen
  strBuffer = Left$(strBuffer, retval)
  'Schraegstrich und Leerzeichen ersetzen
  strBuffer = Replace(strBuffer, "\" & vbNullChar, ",")
  'Rueckgabewert uebernehmen
  myDrives = Left$(strBuffer, Len(strBuffer) - 1)
End Function