VBA / VB6 - Moje dokumenty + Premenné prostredia

Cesta k priečinku Moje dokumenty obsahuje premennú zložku používateľského mena a zmeny z jedného používateľa na druhého. Je možné napísať kód vo VBA alebo VB6 pre prístup k priečinku "My Documents" bez ohľadu na meno používateľa, s pomocou funkcií, ktoré môžu čítať premenné prostredia vo VB6 . Ako pri každom programovacom jazyku, aj písanie kódu vo VB6 alebo VBA vyžaduje znalosť základných konceptov programovania vrátane podprogramov, slučiek a špecifických funkcií VB6. Funkcie prostredia, ako napríklad Environ $, ktoré dostávajú hodnotu premennej prostredia, môžu byť použité na zápis kódu na čítanie premenných prostredia vo VB6 .

Ako je zobrazené v Prieskumníkovi systému Windows, priečinok Dokumenty sa nachádza v koreňovom adresári, ale nie je to tak. Nachádza sa v podadresári C: Dokumenty a nastavenia. Problém je v tom, že tento podadresár berie meno používateľa a mení sa nielen z jedného počítača na druhý, ale aj z počítačov, ktoré podporujú viacerých používateľov.

Nasledujúce kódy vám štandardne umožňujú prístup k priečinku Moje dokumenty bez ohľadu na prihláseného používateľa.

S VBA

Stačí vložiť nasledujúci kód do všeobecného modulu:

Možnosť Explicit

Súkromný typ SHITEMID

cb Ako dlho

abID ako Byte

Typ ukončenia

Súkromný typ ITEMIDLIST

mkid Ako SHITEMID

Typ ukončenia

Súkromné ​​Const CSIDL_PERSONAL Ako Long = & H5

Funkcia privátneho deklarácie SHGetSpecialFolderLocation Lib "shell32.dll" _

(ByVal hwndOwner As Long, ByVal nFolder As Long, _

pidl As ITEMIDLIST) Ako dlho

Funkcia súkromného deklarácie SHGetPathFromIDList Lib "shell32.dll" Alias ​​"SHGetPathFromIDListA" _

ByVal pidl Ako dlho, ByVal pszPath As String As Long

Verejná funkcia Rep_Documents () As String

Dim lRet As Long, IDL ako ITEMIDLIST, sPath As String

lRet = SHGetSpecialFolderLocation (100 &, CSIDL_PERSONAL, IDL)

Ak lRet = 0 Potom

sPath = String $ (512, Chr $ (0))

lRet = SHGetPathFromIDList (ByVal IDL.mkid.cb, ByVal sPath)

Rep_Documents = Left $ (sPath, InStr (sPath, Chr $ (0)) - 1)

inak

Rep_Documents = vbNullString

Koniec Ak

Funkcia konca

Ak chcete zavolať funkciu, jednoducho vytvorte tlačidlo a vložte nasledujúci kód:

Private Sub CommandButton1_Click ()

Bunky (5, 2) = Rep_Documents ()

End Sub

S VB6

Podľa VB6, použite premennú prostredia UserProfile (to tiež funguje s VBA):

 Dim sPathUser ako String

sPathUser = Environ $ ("USERPROFILE") & "moje dokumenty" \ t

MsgBox sPathUser

Funkcie prostredia

Funkcia Environ $ sa používa na príjem hodnoty premennej prostredia.

Napríklad, keď ste použili príkaz WINDIR (Windows), získali by ste priečinok, v ktorom je nainštalovaný systém Windows (C: Windows).

Tieto premenné môžu byť použité v dávkových súboroch, cez utilitu Run av programovacom prostredí ako VB a VBA.

  • Písanie% UserProfile% odkazuje na aktuálneho používateľa.
  • Písanie% UserProfile% Dokumenty sa týkajú priečinka Moje dokumenty.
  • Písanie% WinDir% dostane priečinok Windows.
  • Písanie% tmp% umožňuje prístup k dočasným súborom.

Premenné systému Windows

  • Premenné pre predvoleného používateľa
    • Dočasný adresár TEMP
    • Dočasný adresár TMP
  • Systémové premenné
    • Premenná cesta ComSpec pre príkazový riadok.
    • FP_NO_HOST_CHECK?
    • NUMBER_OF_PROCESSORS?
    • OS Vráti používaný operačný systém.
    • Cesta?
    • PATHEXT?
    • PROCESSOR_ARCHITECTURE Vracia architektúru procesora (x86 atď.)
    • PROCESSOR_IDENTIFIER Vracia ID procesora.
    • PROCESSOR_LEVEL?
    • PROCESSOR_REVISION Vracia počet revízií procesora
    • Dočasný adresár TEMP.
    • Dočasný adresár TMP.
    • priečinok, kde je nainštalovaný systém Windows.
    • Priečinok SystemRoot, v ktorom je nainštalovaný systém Windows.

Poznač si to:

Ak ste prihlásení ako správca, zmeny možno vykonať pomocou ovládacieho panela / Rozšírené systémové / environmentálne premenné.
Predchádzajúci Článok Nasledujúci Článok

Najlepšie Tipy