VBA / VB6 - Eigene Dateien + Umgebungsvariablen

Der Ordnerpfad "Eigene Dateien" enthält eine variable Benutzername-Komponente und wechselt von einem Benutzer zum anderen. Es ist möglich , einen Code in VBA oder VB6 zu schreiben, um unabhängig vom Benutzernamen auf den Ordner "Eigene Dateien" zuzugreifen, und zwar mithilfe von Funktionen, die Umgebungsvariablen in VB6 lesen können . Wie bei jeder Programmiersprache erfordert das Schreiben von Code in VB6 oder VBA Kenntnisse grundlegender Programmierkonzepte, einschließlich Subroutinen, Schleifen und spezifischer VB6-Funktionen. Umgebungsfunktionen wie Environ $, die den Wert einer Umgebungsvariablen empfangen, können verwendet werden, um einen Code zum Lesen von Umgebungsvariablen in VB6 zu schreiben.

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 String

sPathUser = 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.

Beachten Sie, dass:

Wenn Sie als Administrator angemeldet sind, können die Änderungen über Systemsteuerung / Erweiterte System- / Umgebungsvariablen vorgenommen werden.
Vorherige Artikel Nächster Artikel

Top-Tipps