VBA / VB6 - Моите документи + променливи на околната среда
Както е показано в Windows Explorer, папката "Моите документи" изглежда е в корена, но това не е така. Той се намира в поддиректория на C: Documents and Settings. Проблемът е, че тази поддиректория приема името на потребителя и се променя не само от един компютър на друг, но и от персонални компютри, поддържащи множество потребители.
Следните кодове ви позволяват да получите достъп до папката "Моите документи" по подразбиране, независимо от потребителския потребител.
С VBA
Просто поставете следния код в общ модул:Опция Изрично
Личен тип SHITEMID
cb Дълъг
abid As Byte
Тип край
Частен тип ITEMIDLIST
mkid Като SHITEMID
Тип край
Частни константи CSIDL_PERSONAL Като Long = & H5
Функция за лично деклариране SHGetSpecialFolderLocation Lib "shell32.dll" _
(ByVal hwndOwner Long, ByVal nFolder Long, _
pidl Като ITEMIDLIST) Както Дълго
Функция за лично деклариране SHGetPathFromIDList Lib "shell32.dll" Псевдоним "SHGetPathFromIDListA" _
ByVal pidl Като дълъг, ByVal pszPath като дълъг
Публична функция Rep_Documents () Като низ
Dim lRet As Long, IDL Като ITEMIDLIST, sPath As String
lRet = SHGetSpecialFolderLocation (100 &, CSIDL_PERSONAL, IDL)
Ако lRet = 0 Тогава
sPath = String $ (512, Chr $ (0))
lRet = SHGetPathFromIDList (ByVal IDL.mkid.cb, ByVal sPath)
Rep_Documents = Ляво $ (sPath, InStr (sPath, Chr $ (0)) - 1)
още
Rep_Documents = vbNullString
Край Ако
Крайна функция
За да извикате функцията, просто създайте бутон и поставете следния код:
Частно подчинениеButton1_Click ()
Клетки (5, 2) = Rep_Documents ()
Край Под
С VB6
Под VB6 използвайте променливата на обкръжението UserProfile (това също работи с VBA):Намалете sPathUser като StringsPathUser = Environ $ ("USERPROFILE") & "моите документи
MsgBox sPathUser
Функции за околната среда
Функцията Environ $ се използва за получаване на стойността на променлива на обкръжението.Например, когато използвате командата WINDIR (Windows), ще получите папката, в която е инсталиран Windows (C: Windows).
Тези променливи могат да се използват в пакетни файлове, чрез помощната програма Run и в програмна среда като VB и VBA.
- Въвеждането на% UserProfile% се позовава на текущия потребител.
- Въвеждане на% UserProfile% Моите документи се позовава на папката "Моите документи".
- Въвеждането на% WinDir% получава папката Windows.
- Въвеждането на% tmp% ви дава достъп до временни файлове.
Променливи на Windows
- Променливи за потребител по подразбиране
- TEMP временна директория
- TMP временна директория
- Системни променливи
- Променлива пътека на ComSpec за командния ред.
- FP_NO_HOST_CHECK?
- NUMBER_OF_PROCESSORS?
- OS Връща използваната операционна система.
- Път?
- PATHEXT?
- PROCESSOR_ARCHITECTURE Връща архитектурата на процесора (x86 и т.н.)
- PROCESSOR_IDENTIFIER Връща идентификатора на процесора.
- PROCESSOR_LEVEL?
- PROCESSOR_REVISION Връща броя на ревизиите на процесора
- TEMP временна директория.
- TMP временна директория.
- Windir папка, където е инсталиран Windows.
- Папка SystemRoot, където е инсталиран Windows.