VBA / VB6 - mano dokumentai + aplinkos kintamieji

„My Documents“ aplanke yra kintamojo naudotojo komponentas ir keitimai iš vieno naudotojo į kitą. VBA arba VB6 kodą galima parašyti norint pasiekti aplanką „Mano dokumentai“, nepriklausomai nuo naudotojo vardo, naudojant funkcijas, kurios gali skaityti VB6 aplinkos kintamuosius . Kaip ir kiekvienoje programavimo kalba, kodo rašymas VB6 arba VBA programoje reikalauja žinių apie pagrindines programavimo sąvokas, įskaitant subroutines, kilpas ir konkrečias VB6 funkcijas. Aplinkosaugos funkcijos, pvz., „Environ“, kuri gauna aplinkos kintamojo vertę, gali būti naudojamos kodui rašyti, kad būtų galima perskaityti aplinkos kintamuosius VB6 .

Kaip parodyta „Windows Explorer“, aplanke „Mano dokumentai“ yra šaknis, tačiau taip nėra. Jis yra C: dokumentų ir parametrų pakatalogyje. Problema ta, kad šis pakatalogis užima vartotojo vardą ir keičiamas ne tik iš vieno kompiuterio į kitą, bet ir į kompiuterius, palaikančius kelis vartotojus.

Toliau pateikiami kodai suteikia galimybę pagal nutylėjimą pasiekti aplanką „Mano dokumentai“, nepriklausomai nuo vartotojo prisijungimo.

Su VBA

Tiesiog įklijuokite šį kodą į bendrą modulį:

Galimybė aiški

Privatus tipas SHITEMID

cb kaip ilgai

abID Kaip baitas

Pabaigos tipas

Privatus tipas ITEMIDLIST

mkid As SHITEMID

Pabaigos tipas

Asmeninis Const CSIDL_PERSONAL Kaip ilgas = & H5

Privatus deklaravimas Funkcija SHGetSpecialFolderLocation Lib "shell32.dll" _

(ByVal hwndOwner kaip ilgas, byVal nFolder As Long, _

pidl As ITEMIDLIST) Kaip ilgai

Privačios deklaracijos funkcija SHGetPathFromIDList Lib "shell32.dll" slapyvardis "SHGetPathFromIDListA" _

ByVal pidl As Long, ByVal pszPath Kaip eilutė kaip ilgai

Viešoji funkcija Rep_Documents () Kaip eilutė

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

lRet = SHGetSpecialFolderLocation (100 ir, CSIDL_PERSONAL, IDL)

Jei lRet = 0, tada

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

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

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

Kitas

Rep_Documents = vbNullString

Baigti Jei

Pabaigos funkcija

Jei norite skambinti funkcijai, tiesiog sukurkite mygtuką ir įklijuokite šį kodą:

Privatus subkomandasButton1_Click ()

Ląstelės (5, 2) = Rep_Documents ()

Pabaiga

Su VB6

Pagal VB6 naudokite aplinkos kintamąjį UserProfile (tai taip pat veikia su VBA):

 Išmeskite sPathUser kaip eilutę

sPathUser = Aplinka $ („USERPROFILE“) ir „mano dokumentai“

MsgBox sPathUser

Aplinkos funkcijos

Funkcija „Environ $“ naudojama norint gauti aplinkos kintamojo vertę.

Pvz., Kai naudojote WINDIR komandą („Windows“), turėtumėte gauti aplanką, kuriame įdiegta „Windows“ (C: Windows).

Šie kintamieji gali būti naudojami paketinėse rinkmenose, naudodami „Run“ programą ir programavimo aplinkoje, pvz., „VB“ ir „VBA“.

  • Įveskite% UserProfile% nuoroda į dabartinį naudotoją.
  • Įveskite% UserProfile% Mano dokumentai nurodo aplanką „Mano dokumentai“.
  • Rašant% WinDir% gaunamas Windows aplankas.
  • Rašant% tmp% suteikia prieigą prie laikinų failų.

Windows kintamieji

  • Numatytojo naudotojo kintamieji
    • TEMP laikinas katalogas
    • TMP laikinasis katalogas
  • Sistemos kintamieji
    • ComSpec kintamas kelias komandų eilutei.
    • FP_NO_HOST_CHECK?
    • NUMBER_OF_PROCESSORS?
    • OS grąžina naudojamą OS.
    • Kelias?
    • PATHEXT?
    • PROCESSOR_ARCHITECTURE Grąžina procesoriaus architektūrą (x86 ir tt ...)
    • PROCESSOR_IDENTIFIER Grąžina procesoriaus ID.
    • PROCESSOR_LEVEL?
    • PROCESSOR_REVISION Grąžina procesoriaus pakeitimų skaičių
    • TEMP laikinas katalogas.
    • TMP laikinasis katalogas.
    • „Windir“ aplankas, kuriame įdiegta „Windows“.
    • „SystemRoot“ aplankas, kuriame įdiegta „Windows“.

Prisimink tai:

Jei esate prisijungęs kaip administratorius, pakeitimus galima atlikti naudojant valdymo skydelį / išplėstinę sistemą / aplinkos kintamuosius.
Ankstesnis Straipsnis Kitas Straipsnis

Geriausi Patarimai