VBA / VB6 - Moje dokumenty + proměnné prostředí
Jak je zobrazeno v Průzkumníkovi Windows, složka Dokumenty je v kořenovém adresáři, ale není tomu tak. Je umístěn v podadresáři C: Documents and Settings. Problém je v tom, že tento podadresář bere jméno uživatele a je změněn nejen z jednoho počítače na druhý, ale také na počítačích podporujících více uživatelů.
Následující kódy vám ve výchozím nastavení umožňují přístup ke složce Dokumenty bez ohledu na přihlášeného uživatele.
S VBA
Stačí vložit následující kód do obecného modulu:Možnost Explicit
Soukromý typ SHITEMID
cb Jak dlouho
abID jako Byte
Typ konce
Soukromý typ ITEMIDLIST
mkid Jako SHITEMID
Typ konce
Soukromé Const CSIDL_PERSONAL Jako Long = & H5
Funkce soukromého deklarace SHGetSpecialFolderLocation Lib "shell32.dll" _
(ByVal hwndOwner As Long, ByVal nFolder As Long, _
pidl As ITEMIDLIST) Jak dlouho
Funkce soukromého deklarovat SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" _
ByVal pidl As Long, ByVal pszPath Jako String As Long
Veřejná funkce Rep_Documents () As String
Dim lRet As Long, IDL jako ITEMIDLIST, sPath As String
lRet = SHGetSpecialFolderLocation (100 &, CSIDL_PERSONAL, IDL)
Pokud lRet = 0 Pak
sPath = String $ (512, Chr $ (0))
lRet = SHGetPathFromIDList (ByVal IDL.mkid.cb, ByVal sPath)
Rep_Documents = Left $ (sPath, InStr (sPath, Chr $ (0)) - 1)
Jiný
Rep_Documents = vbNullString
Konec Pokud
Funkce End
Chcete-li funkci zavolat, jednoduše vytvořte tlačítko a vložte následující kód:
Private Sub CommandButton1_Click ()
Buňky (5, 2) = Rep_Documents ()
End Sub
S VB6
Ve skupinovém rámečku VB6 použijte proměnnou prostředí UserProfile (to také funguje s VBA):Dim sPathUser jako StringsPathUser = Environ $ ("USERPROFILE") & "mé dokumenty" \ t
MsgBox sPathUser
Funkce prostředí
Funkce Environ $ slouží k přijetí hodnoty proměnné prostředí.Pokud například použijete příkaz WINDIR (Windows), měli byste složku, ve které je nainstalován systém Windows (C: Windows).
Tyto proměnné lze použít v dávkových souborech, a to prostřednictvím obslužného programu Spustit a v programovacím prostředí jako VB a VBA.
- Psaní% UserProfile% odkazuje na aktuálního uživatele.
- Dokumentace% UserProfile% Dokumenty se odkazují na složku Dokumenty.
- Psaní% WinDir% dostane složku Windows.
- Zadáním% tmp% získáte přístup k dočasným souborům.
Proměnné systému Windows
- Proměnné pro výchozího uživatele
- Dočasný adresář TEMP
- Dočasný adresář TMP
- Systémové proměnné
- Proměnná cesta ComSpec pro příkazový řádek.
- FP_NO_HOST_CHECK?
- NUMBER_OF_PROCESSORS?
- OS Vrací používaný operační systém.
- Cesta?
- PATHEXT?
- PROCESSOR_ARCHITECTURE Vrátí architekturu procesoru (x86 atd.)
- PROCESSOR_IDENTIFIER Vrátí ID procesoru.
- PROCESSOR_LEVEL?
- PROCESSOR_REVISION Vrátí počet revizí procesoru
- Dočasný adresář TEMP.
- Dočasný adresář TMP.
- složka windir, kde je nainstalován systém Windows.
- Složka SystemRoot, kde je nainstalován systém Windows.