VBA / VB6 - Moji dokumenti + spremenljivke okolja

Pot mape »Moji dokumenti« vsebuje spremenljivo komponento uporabniškega imena in se spreminja iz enega uporabnika v drugega. Možno je napisati kodo v VBA ali VB6 za dostop do mape "Moji dokumenti" ne glede na uporabniško ime, s pomočjo funkcij, ki lahko berejo spremenljivke okolja v VB6 . Kot pri vsakem programskem jeziku, pisanje kode v VB6 ali VBA zahteva poznavanje osnovnih konceptov programiranja, vključno s podprogrami, zankami in posebnimi funkcijami VB6. Funkcije okolja, kot je Environ $, ki prejme vrednost spremenljivke okolja, lahko uporabite za pisanje kode za branje spremenljivk okolja v VB6 .

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 String

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

Upoštevajte, da:

Če ste prijavljeni kot skrbnik, lahko spremembe izvedete prek nadzorne plošče / naprednih sistemskih / okoljskih spremenljivk.
Prejšnji Članek Naslednji Članek

Top Nasveti