VBA / VB6 - Mine dokumenter + Miljøvariabler
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 StringsPathUser = 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.