VBA / VB6 - Mine dokumenter + Miljøvariabler

Mappen "Mine dokumenter" indeholder en variabel brugernavnskomponent og ændringer fra en bruger til en anden. Det er muligt at skrive en kode i VBA eller VB6 for at få adgang til mappen "Mine dokumenter" uanset brugernavn ved hjælp af funktioner, der kan læse miljøvariabler i VB6 . Som med alle programmeringssprog kræver skrive kode i VB6 eller VBA viden om grundlæggende programmeringskoncepter, herunder subrutiner, sløjfer og specifikke VB6-funktioner. Miljøfunktioner som Environ $, der modtager værdien af ​​en miljøvariabel, kan bruges til at skrive en kode for at læse miljøvariabler i VB6 .

Som vist i Windows Stifinder, vises mappen My Documents for at være i roden, men det er ikke tilfældet. Den er placeret i en undermappe af C: \ Documents and Settings. Problemet er, at denne underkatalog tager brugerens navn og ændres ikke kun fra pc til pc, men også på pc'er, der understøtter flere brugere.

Følgende koder giver dig adgang til mappen Mine dokumenter som standard, uanset hvilken bruger du logger på.

Med VBA

Indsæt kun følgende kode i et generelt modul:

Mulighed Eksplicit

Privat Type SHITEMID

cb så lang tid

abid As Byte

Afslut Type

Privat type ITEMLIST

mkid Som SHITEMID

Afslut Type

Private Const CSIDL_PERSONAL As Long = & H5

Privat erklære funktion SHGetSpecialFolderLocation Lib "shell32.dll" _

(ByVal hwndOwner så længe, ​​ByVal nFolder så længe _

pidl Som ITEMIDLIST) Så længe

Privat erklære funktion SHGetPathFromIDList Lib "shell32.dll" Alias ​​"SHGetPathFromIDListA" _

ByVal pidl Så længe, ​​ByVal pszPath Som streng så lang

Offentlige Funktion Rep_Documents () Som String

Dim lRet As Long, IDL Som ITEMLIST, sPath As String

lRet = SHGetSpecialFolderLocation (100 &, CSIDL_PERSONAL, IDL)

Hvis lRet = 0 Så

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

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

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

Andet

Rep_Documents = vbNullString

Afslut Hvis

Slutfunktion

For at ringe til funktionen skal du blot oprette en knap og indsætte i følgende kode:

Privat Sub CommandButton1_Click ()

Celler (5, 2) = Rep_Documents ()

Slutdel

Med VB6

Under VB6 skal du bruge miljøvariablen UserProfile (dette virker også med VBA):

 Dim sPathUser som String

sPathUser = Environ $ ("USERPROFILE") & "\ mine dokumenter \"

MsgBox sPathUser

Miljøfunktioner

Environ $ -funktionen bruges til at modtage værdien af ​​en miljøvariabel.

For eksempel, når du brugte WINDIR-kommandoen (Windows), ville du have fået den mappe, hvor Windows er installeret (C: \ Windows \).

Disse variabler kan bruges i batch-filer, gennem Run-programmet og i et programmeringsmiljø som VB og VBA.

  • Skrivning% UserProfile% refererer til den aktuelle bruger.
  • Skrivning% UserProfile% \ My Documents "refererer til mappen Mine dokumenter.
  • Indtastning% WinDir% får Windows-mappen.
  • At skrive% tmp% giver dig adgang til midlertidige filer.

Windows Variabler

  • Variabler for standardbrugeren
    • TEMP midlertidig mappe
    • TMP midlertidig mappe
  • Systemvariabler
    • ComSpec variabel sti til kommandoprompten.
    • FP_NO_HOST_CHECK?
    • NUMBER_OF_PROCESSORS?
    • OS Returnerer OS i brug.
    • Sti?
    • PATHEXT?
    • PROCESSOR_ARCHITECTURE Returnerer processorarkitekturen (x86 osv. ..)
    • PROCESSOR_IDENTIFIER Returnerer processor ID.
    • PROCESSOR_LEVEL?
    • PROCESSOR_REVISION Returnerer antallet af processorrevisioner
    • TEMP midlertidig mappe.
    • TMP midlertidig mappe.
    • windir-mappe, hvor Windows er installeret.
    • SystemRoot-mappe, hvor Windows er installeret.

Noter det:

Hvis du er logget ind som administrator, kan ændringerne foretages via Kontrolpanel / Avanceret system / Miljøvariabler.
Forrige Artikel Næste Artikel

Top Tips