VBA / VB6 - Moje dokumenty + proměnné prostředí

Cesta ke složce "Moje dokumenty" obsahuje proměnnou složku uživatelské jméno a změny z jednoho uživatele na druhého. Je možné napsat kód ve VBA nebo VB6 pro přístup do složky "Moje dokumenty" bez ohledu na uživatelské jméno, s pomocí funkcí, které mohou číst proměnné prostředí ve VB6 . Stejně jako u každého programovacího jazyka vyžaduje zápis kódu ve VB6 nebo VBA znalosti základních konceptů programování, včetně podprogramů, smyček a specifických funkcí VB6. Funkce prostředí, jako je například prostředí Environ $, které přijímá hodnotu proměnné prostředí, lze použít k zápisu kódu pro čtení proměnných prostředí ve VB6 .

Jak je zobrazeno v Průzkumníkovi Windows, složka Dokumenty je v kořenovém adresáři, ale není tomu tak. Je umístěn v podadresáři C: Documents and Settings. Problém je v tom, že tento podadresář bere jméno uživatele a je změněn nejen z jednoho počítače na druhý, ale také na počítačích podporujících více uživatelů.

Následující kódy vám ve výchozím nastavení umožňují přístup ke složce Dokumenty bez ohledu na přihlášeného uživatele.

S VBA

Stačí vložit následující kód do obecného modulu:

Možnost Explicit

Soukromý typ SHITEMID

cb Jak dlouho

abID jako Byte

Typ konce

Soukromý typ ITEMIDLIST

mkid Jako SHITEMID

Typ konce

Soukromé Const CSIDL_PERSONAL Jako Long = & H5

Funkce soukromého deklarace SHGetSpecialFolderLocation Lib "shell32.dll" _

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

pidl As ITEMIDLIST) Jak dlouho

Funkce soukromého deklarovat SHGetPathFromIDList Lib "shell32.dll" Alias ​​"SHGetPathFromIDListA" _

ByVal pidl As Long, ByVal pszPath Jako String As Long

Veřejná funkce Rep_Documents () As String

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

lRet = SHGetSpecialFolderLocation (100 &, CSIDL_PERSONAL, IDL)

Pokud lRet = 0 Pak

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

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

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

Jiný

Rep_Documents = vbNullString

Konec Pokud

Funkce End

Chcete-li funkci zavolat, jednoduše vytvořte tlačítko a vložte následující kód:

Private Sub CommandButton1_Click ()

Buňky (5, 2) = Rep_Documents ()

End Sub

S VB6

Ve skupinovém rámečku VB6 použijte proměnnou prostředí UserProfile (to také funguje s VBA):

 Dim sPathUser jako String

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

MsgBox sPathUser

Funkce prostředí

Funkce Environ $ slouží k přijetí hodnoty proměnné prostředí.

Pokud například použijete příkaz WINDIR (Windows), měli byste složku, ve které je nainstalován systém Windows (C: Windows).

Tyto proměnné lze použít v dávkových souborech, a to prostřednictvím obslužného programu Spustit a v programovacím prostředí jako VB a VBA.

  • Psaní% UserProfile% odkazuje na aktuálního uživatele.
  • Dokumentace% UserProfile% Dokumenty se odkazují na složku Dokumenty.
  • Psaní% WinDir% dostane složku Windows.
  • Zadáním% tmp% získáte přístup k dočasným souborům.

Proměnné systému Windows

  • Proměnné pro výchozího uživatele
    • Dočasný adresář TEMP
    • Dočasný adresář TMP
  • Systémové proměnné
    • Proměnná cesta ComSpec pro příkazový řádek.
    • FP_NO_HOST_CHECK?
    • NUMBER_OF_PROCESSORS?
    • OS Vrací používaný operační systém.
    • Cesta?
    • PATHEXT?
    • PROCESSOR_ARCHITECTURE Vrátí architekturu procesoru (x86 atd.)
    • PROCESSOR_IDENTIFIER Vrátí ID procesoru.
    • PROCESSOR_LEVEL?
    • PROCESSOR_REVISION Vrátí počet revizí procesoru
    • Dočasný adresář TEMP.
    • Dočasný adresář TMP.
    • složka windir, kde je nainstalován systém Windows.
    • Složka SystemRoot, kde je nainstalován systém Windows.

Všimněte si, že:

Pokud jste přihlášeni jako správce, změny lze provést prostřednictvím ovládacího panelu / Advanced System / Environment Variables.
Předchozí Článek Následující Článek

Nejlepší Tipy