VBA / VB6 - Omat tiedostot + ympäristömuuttujat

"Omat tiedostot" -kansion polku sisältää muuttujan käyttäjätunnuksen ja muutokset yhdeltä käyttäjältä toiselle. VBA: ssa tai VB6: ssa on mahdollista kirjoittaa koodi, jotta pääset "Omat tiedostot" -kansioon käyttäjätunnuksesta riippumatta, funktioiden avulla, jotka voivat lukea ympäristömuuttujia VB6: ssa . Kuten jokaisella ohjelmointikielellä, koodin kirjoittaminen VB6: ssa tai VBA: ssa edellyttää tietoa ohjelmoinnin peruskäsitteistä, mukaan lukien aliohjelmat, silmukat ja erityiset VB6-toiminnot. Ympäristömuuttujan arvoa vastaanottavilla ympäristötoiminnoilla, kuten ympäristöllä $, voidaan kirjoittaa koodia, jolla luetaan ympäristömuuttujia VB6: ssa .

Kuten Windowsin Resurssienhallinnassa näkyy, Omat tiedostot -kansio näyttää olevan juuressa, mutta näin ei ole. Se sijaitsee C: dokumenttien ja asetusten alihakemistossa. Ongelmana on, että tämä alihakemisto vie käyttäjän nimen ja sitä ei muuteta pelkästään PC: stä toiseen, vaan myös tietokoneisiin, jotka tukevat useita käyttäjiä.

Seuraavien koodien avulla voit käyttää Omat tiedostot -kansiota oletusarvoisesti riippumatta siitä, onko käyttäjä kirjautunut.

VBA: lla

Liitä vain seuraava koodi yleiseen moduuliin:

Vaihtoehto Selkeä

Yksityinen tyyppi SHITEMID

cb niin kauan

abID Byte

Lopputyyppi

Yksityinen tyyppi ITEMIDLIST

mkid Kuten SHITEMID

Lopputyyppi

Yksityinen Const CSIDL_PERSONAL Niin kauan kuin = & H5

Yksityinen ilmoitus Toiminto SHGetSpecialFolderLocation Lib "shell32.dll" _

(ByVal hwndOwner niin kauan, ByVal nFolder Long Long, _

pidl As ITEMIDLIST) Niin kauan

Yksityinen julistustoiminto SHGetPathFromIDList Lib "shell32.dll" Alias ​​"SHGetPathFromIDListA" _

ByVal pidl Niin kauan, ByVal pszPath kuin merkkijono niin kauan

Julkinen toiminto Rep_Documents () merkkijonoina

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

lRet = SHGetSpecialFolderLocation (100 &, CSIDL_PERSONAL, IDL)

Jos lRet = 0 Sitten

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

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

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

muu

Rep_Documents = vbNullString

Loppu Jos

Lopeta toiminto

Jos haluat soittaa toimintoon, luo painike ja liitä se seuraavaan koodiin:

Yksityinen alikomentoButton1_Click ()

Solut (5, 2) = Rep_Documents ()

Lopeta Sub

VB6: lla

Käytä VB6: ssa ympäristömuuttuja UserProfile (tämä toimii myös VBA: n kanssa):

 Dim sPathUser merkkijonoina

sPathUser = Ympäristö $ ("USERPROFILE") & "dokumentit"

MsgBox sPathUser

Ympäristötoiminnot

Environ $ -toimintoa käytetään ympäristön muuttujan arvon vastaanottamiseen.

Esimerkiksi, kun käytit WINDIR-komentoa (Windows), olisit saanut kansion, johon Windows on asennettu (C: Windows).

Näitä muuttujia voidaan käyttää erätiedostoina, Run-apuohjelman ja ohjelmointiympäristön, kuten VB: n ja VBA: n kautta.

  • Työskentely% UserProfile% viittaa nykyiseen käyttäjään.
  • Työskentely% UserProfile% Omat tiedostot viittaa Omat tiedostot -kansioon.
  • Työskentely% WinDir% saa Windowsin kansion.
  • Työskentely% tmp% antaa sinulle pääsyn tilapäisiin tiedostoihin.

Windows-muuttujat

  • Oletuskäyttäjän muuttujat
    • TEMP-tilapäinen hakemisto
    • TMP: n väliaikainen hakemisto
  • Järjestelmämuuttujat
    • ComSpec-muuttujan polku komentoriville.
    • FP_NO_HOST_CHECK?
    • NUMBER_OF_PROCESSORS?
    • OS palauttaa käytössä olevan käyttöjärjestelmän.
    • Polku?
    • PATHEXT?
    • PROCESSOR_ARCHITECTURE Palauttaa prosessoriarkkitehtuurin (x86 jne.)
    • PROCESSOR_IDENTIFIER Palauttaa prosessorin tunnuksen.
    • PROCESSOR_LEVEL?
    • PROCESSOR_REVISION Palauttaa suorittimen tarkistusten määrän
    • TEMP-tilapäinen hakemisto.
    • TMP: n väliaikainen hakemisto.
    • Windir-kansio, johon Windows on asennettu.
    • SystemRoot-kansio, johon Windows on asennettu.

Ota huomioon, että:

Jos olet kirjautunut sisään järjestelmänvalvojana, muutokset voidaan tehdä Ohjauspaneelin / Lisäjärjestelmän / ympäristömuuttujien avulla.
Edellinen Artikkeli Seuraava Artikkeli

Top Vinkkejä