VBA / VB6 - Moji dokumenti + spremenljivke okolja
Kot je prikazano v Raziskovalcu, se zdi, da je mapa Moji dokumenti v korenu, vendar ni tako. Nahaja se v podmapi C: Documents and Settings. Težava je v tem, da ta podimenik sprejema uporabniško ime in se spreminja ne samo z enega računalnika na drugega, ampak tudi na osebnih računalnikih, ki podpirajo več uporabnikov.
Naslednje kode omogočajo dostop do mape »Moji dokumenti« privzeto, ne glede na uporabnika, ki je prijavljen.
Z VBA
Samo prilepite naslednjo kodo v splošni modul:Možnost Eksplicitna
Zasebna vrsta SHITEMID
cb Tako dolgo
ne upošteva kot bajt
Vrsta konca
Zasebna vrsta ITEMIDLIST
mkid Kot SHITEMID
Vrsta konca
Zasebna zgradba CSIDL_PERSONAL Kot dolga = & H5
Funkcija za zasebno izjavo SHGetSpecialFolderLocation Lib "shell32.dll" _
(ByVal hwndOwner Kot dolg, ByVal nFolder kot dolg, _
pidl Kot ITEMIDLIST) Dolgo
Funkcija za zasebno izjavo SHGetPathFromIDList Lib "shell32.dll" Vzdevek "SHGetPathFromIDListA" _
ByVal pidl Kot dolgo, ByVal pszPath kot niz, kot dolgo
Javna funkcija Rep_Documents () Kot niz
Dim lRet Kot dolg, IDL kot ITEMIDLIST, sPath As String
lRet = SHGetSpecialFolderLocation (100 &, CSIDL_PERSONAL, IDL)
Če je lRet = 0, potem
sPath = Niz $ (512, Chr $ (0))
lRet = SHGetPathFromIDList (ByVal IDL.mkid.cb, ByVal sPath)
Rep_Documents = Levo $ (sPath, InStr (sPath, Chr $ (0)) - 1)
Drugače
Rep_Documents = vbNullString
End If
Končna funkcija
Če želite poklicati funkcijo, preprosto ustvarite gumb in prilepite naslednjo kodo:
Zasebna podkontrolna vrstica1_Click ()
Celice (5, 2) = Rep_Documents ()
End Sub
Z VB6
Pod VB6 uporabite spremenljivko okolja UserProfile (to deluje tudi z VBA):Dim sPathUser kot StringsPathUser = Environ $ ("USERPROFILE") & "moje dokumente
MsgBox sPathUser
Okoljske funkcije
Funkcija Environ $ je uporabljena za sprejem vrednosti spremenljivke okolja.Ko ste na primer uporabili ukaz WINDIR (Windows), bi dobili mapo, v kateri je nameščen operacijski sistem Windows (C: Windows).
Te spremenljivke lahko uporabite v paketnih datotekah, v pripomočku za izvajanje in v programskem okolju, kot sta VB in VBA.
- Vnašanje% UserProfile% se sklicuje na trenutnega uporabnika.
- Vnos% UserProfile% My Documents "se sklicuje na mapo Moji dokumenti.
- Tipkanje% WinDir% dobi mapo Windows.
- Vnos% tmp% vam omogoča dostop do začasnih datotek.
Spremenljivke Windows
- Spremenljivke za privzetega uporabnika
- Začasni imenik TEMP
- Začasni imenik TMP
- Sistemske spremenljivke
- Spremenljivka poti ComSpec za ukazni poziv.
- FP_NO_HOST_CHECK?
- NUMBER_OF_PROCESSORS?
- OS Vrne uporabljene operacijske sisteme.
- Pot?
- PATHEXT?
- PROCESSOR_ARCHITECTURE Vrne arhitekturo procesorja (x86 itd.)
- PROCESSOR_IDENTIFIER Vrne ID procesorja.
- PROCESSOR_LEVEL?
- PROCESSOR_REVISION Vrne število revizij procesorja
- Začasni imenik TEMP.
- Začasni imenik TMP.
- Windir mapo, kjer je nameščen Windows.
- Mapa SystemRoot, kjer je nameščen operacijski sistem Windows.