VBA / VB6 - Mina dokument + Miljövariabler
Som visas i Utforskaren visas mappen Mina dokument för att vara i roten, men det är inte så. Den ligger i en underkatalog med C: \ Documents and Settings. Problemet är att denna underkatalog tar användarens namn och ändras inte bara från en dator till en annan, men också på datorer som stöder flera användare.
Följande koder låter dig komma åt mappen Mina dokument som standard oavsett vilken användare som är inloggad.
Med VBA
Klistra in följande kod i en allmän modul:Alternativ Explicit
Privat typ SHITEMID
cb så länge
abid som byte
Sluttyp
Privat typ ITEMIDLIST
mkid som SHITEMID
Sluttyp
Privat Const CSIDL_PERSONAL As Long = & H5
Privat förklara funktion SHGetSpecialFolderLocation Lib "shell32.dll" _
(ByVal hwndOwner så länge, ByVal nFolder så länge _
pidl Som ITEMIDLIST) Så länge
Privat deklarera funktion SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" _
ByVal pidl Så länge, ByVal pszPath Som sträng så länge
Offentlig funktion Rep_Documents () As String
Dim lRet As Long, IDL Som ITEMIDLIST, sPath As String
lRet = SHGetSpecialFolderLocation (100 & CSIDL_PERSONAL, IDL)
Om lRet = 0 Då
sPath = String $ (512, Chr $ (0))
lRet = SHGetPathFromIDList (ByVal IDL.mkid.cb, ByVal sPath)
Rep_Documents = Vänster $ (sPath, InStr (sPath, Chr $ (0)) - 1)
Annan
Rep_Documents = vbNullString
Avsluta om
Slutfunktion
För att ringa upp funktionen, skapa en knapp och klistra in i följande kod:
Privat Sub CommandButton1_Click ()
Celler (5, 2) = Rep_Documents ()
Slutdel
Med VB6
Under VB6 använder du miljövariabeln UserProfile (det här fungerar också med VBA):Dimma sPathUser som strängsPathUser = Environ $ ("USERPROFILE") & "\ Mina dokument \"
MsgBox sPathUser
Miljöfunktioner
Environ $ -funktionen används för att ta emot värdet av en miljövariabel.Om du till exempel använde WINDIR-kommandot (Windows), skulle du ha fått den mapp där Windows är installerat (C: \ Windows \).
Dessa variabler kan användas i batchfiler, genom Run-verktyget och i en programmeringsmiljö som VB och VBA.
- Att skriva% UserProfile% refererar till den nuvarande användaren.
- Skrivning% UserProfile% \ My Documents "refererar till mappen Mina dokument.
- Skrivning% WinDir% får Windows-mappen.
- Att skriva% tmp% ger dig tillgång till tillfälliga filer.
Windows-variabler
- Variabler för standardanvändaren
- TEMP-tillfällig katalog
- TMP tillfällig katalog
- Systemvariabler
- ComSpec-variabelväg för kommandotolken.
- FP_NO_HOST_CHECK?
- NUMBER_OF_PROCESSORS?
- OS returnerar operativsystem som används.
- Väg?
- PATHEXT?
- PROCESSOR_ARCHITECTURE Returnerar processorarkitekturen (x86 etc ...)
- PROCESSOR_IDENTIFIER Returnerar processorns ID.
- PROCESSOR_LEVEL?
- PROCESSOR_REVISION Returnerar antalet processorrevisioner
- TEMP-tillfällig katalog.
- TMP tillfällig katalog.
- windir-mapp där Windows är installerat.
- SystemRoot-mapp där Windows är installerat.