VBA / VB6 - Eigene Dateien + Umgebungsvariablen
Wie im Windows Explorer angezeigt, befindet sich der Ordner Eigene Dateien anscheinend im Stammverzeichnis, dies ist jedoch nicht der Fall. Es befindet sich in einem Unterverzeichnis von C: \ Documents and Settings. Das Problem ist, dass dieses Unterverzeichnis den Namen des Benutzers annimmt und nicht nur von einem PC auf einen anderen geändert wird, sondern auch auf PCs, die mehrere Benutzer unterstützen.
Mit den folgenden Codes können Sie unabhängig vom angemeldeten Benutzer standardmäßig auf den Ordner Eigene Dateien zugreifen.
Mit VBA
Fügen Sie einfach den folgenden Code in ein allgemeines Modul ein:Option explizit
Private Type SHITEMID
cb So lange
abID als Byte
Endtyp
Private Type ITEMIDLIST
mkid Wie SHITEMID
Endtyp
Private Const CSIDL_PERSONAL As Long = & H5
Private Deklarierungsfunktion SHGetSpecialFolderLocation Lib "shell32.dll" _
(ByVal hwndOwner As Long, ByVal nFolder As Long, _
pidl As ITEMIDLIST) As Long
Private Deklarierungsfunktion SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" _
ByVal pidl As Long, ByVal pszPath As String As Long
Öffentliche Funktion Rep_Documents () As String
Dimmen Sie lRet As Long, IDL As ITEMIDLIST und sPath As String
lRet = SHGetSpecialFolderLocation (100 &, CSIDL_PERSONAL, IDL)
Wenn lRet = 0, dann
sPath = String $ (512, Chr $ (0))
lRet = SHGetPathFromIDList (ByVal IDL.mkid.cb, ByVal sPath)
Rep_Documents = Left $ (sPath, InStr (sPath, Chr $ (0)) - 1)
Sonst
Rep_Documents = vbNullString
End If
Funktion beenden
Um die Funktion aufzurufen, erstellen Sie einfach eine Schaltfläche und fügen Sie den folgenden Code ein:
Private Sub CommandButton1_Click ()
Zellen (5, 2) = Rep_Documents ()
End Sub
Mit VB6
Verwenden Sie unter VB6 die Umgebungsvariable UserProfile (dies funktioniert auch mit VBA):Dim sPathUser als StringsPathUser = Environ $ ("USERPROFILE") & "\ my documents \"
MsgBox sPathUser
Umgebungsfunktionen
Die Environ $ -Funktion wird verwendet, um den Wert einer Umgebungsvariablen zu erhalten.Wenn Sie beispielsweise den Befehl WINDIR (Windows) verwendet haben, haben Sie den Ordner abgerufen, in dem Windows installiert ist (C: \ Windows \).
Diese Variablen können in Batchdateien, über das Dienstprogramm Run und in einer Programmierumgebung wie VB und VBA verwendet werden.
- Die Eingabe von% UserProfile% verweist auf den aktuellen Benutzer.
- Wenn Sie "% UserProfile% \ My Documents" eingeben, wird auf den Ordner "My Documents" verwiesen.
- Wenn Sie% WinDir% eingeben, wird der Windows-Ordner abgerufen.
- Wenn Sie% tmp% eingeben, erhalten Sie Zugriff auf temporäre Dateien.
Windows-Variablen
- Variablen für den Standardbenutzer
- Temporäres TEMP-Verzeichnis
- Temporäres TMP-Verzeichnis
- Systemvariablen
- ComSpec-Variablenpfad für die Eingabeaufforderung.
- FP_NO_HOST_CHECK?
- NUMBER_OF_PROCESSORS?
- Betriebssystem Gibt das verwendete Betriebssystem zurück.
- Pfad?
- PATHEXT?
- PROCESSOR_ARCHITECTURE Liefert die Prozessorarchitektur (x86 etc ...)
- PROCESSOR_IDENTIFIER Gibt die Prozessor-ID zurück.
- PROCESSOR_LEVEL?
- PROCESSOR_REVISION Gibt die Anzahl der Prozessorrevisionen zurück
- Temporäres TEMP-Verzeichnis.
- Temporäres TMP-Verzeichnis.
- Ordner windir, in dem Windows installiert ist.
- SystemRoot-Ordner, in dem Windows installiert ist.