VBA / VB6 - 내 문서 + 환경 변수

"내 문서"폴더 경로에는 변수 사용자 이름 구성 요소가 포함되어 있으며 한 사용자에서 다른 사용자로 변경됩니다. VB6에서 환경 변수를 읽을 수있는 함수를 사용하여 사용자 이름에 관계없이 "My Documents"폴더에 액세스하려면 VBA 또는 VB6에 코드작성할 수 있습니다. 모든 프로그래밍 언어와 마찬가지로 VB6 또는 VBA에서 코드를 작성하려면 서브 루틴, 루프 및 특정 VB6 함수를 비롯한 기본 프로그래밍 개념에 대한 지식이 필요합니다. 환경 변수의 값을받는 Environ $과 같은 환경 함수 는 VB6에서 환경 변수읽는 코드를 작성하는 데 사용될 수 있습니다.

Windows 탐색기에 표시되는 것처럼 내 문서 폴더가 루트에있는 것으로 나타나지만 그렇지 않습니다. 이 파일은 C : \ Documents and Settings의 하위 디렉토리에 있습니다. 문제는이 하위 디렉토리가 사용자 이름을 사용하고 한 PC에서 다른 PC로 변경 될뿐만 아니라 여러 사용자를 지원하는 PC에서도 변경된다는 것입니다.

다음 코드를 사용하면 로그온 한 사용자에 관계없이 기본적으로 내 문서 폴더에 액세스 할 수 있습니다.

VBA 사용

일반 모듈에 다음 코드를 붙여 넣기 만하면됩니다.

Option Explicit

사립 유형 SHITEMID

Cb As Long

abID as Byte

엔드 타입

개인 유형 ITEMIDLIST

SHITEMID으로 mkid

엔드 타입

개인 Const CSIDL_PERSONAL As Long = & H5

개인 선언 함수 SHGetSpecialFolderLocation Lib "shell32.dll"_

(ByVal hwndOwner 길기 때문에 ByVal nFolder As Long, _

pidl ITEMIDLIST) As Long

개인 선언 함수 SHGetPathFromIDList Lib "shell32.dll"별칭 "SHGetPathFromIDListA"_

ByVal pidl 길기 때문에 ByVal pszPath를 String으로 사용

공용 함수 Rep_Documents ()를 String으로 사용

어둡게 l 길게, IDL은 ITEMIDLIST, 문자열은 sPath

lRet = SHGetSpecialFolderLocation (100 &, CSIDL_PERSONAL, IDL)

만약 lRet = 0이면

sPath = 문자열 $ (512, Chr $ (0))

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

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

그밖에

Rep_Documents = vbNullString

끝면

끝 기능

함수를 호출하려면 버튼을 만들고 다음 코드를 붙여 넣기 만하면됩니다.

Private Sub CommandButton1_Click ()

셀 (5, 2) = Rep_Documents ()

End Sub

VB6 사용

VB6에서 UserProfile 환경 변수를 사용하십시오 (VBA에서도 작동 함).

 String으로 sPathUser를 희미하게합니다.

sPathUser = Environ $ ( "USERPROFILE") & "\ my documents \"

MsgBox sPathUser

환경 기능

Environ $ 함수는 환경 변수 값을 받기 위해 사용됩니다.

예를 들어, WINDIR 명령 (Windows)을 사용하면 Windows가 설치된 폴더 (C : \ Windows \)를 얻었을 것입니다.

이러한 변수는 배치 파일, 실행 유틸리티 및 VB 및 VBA와 같은 프로그래밍 환경에서 사용할 수 있습니다.

  • % UserProfile %를 입력하면 현재 사용자를 참조합니다.
  • % UserProfile % \ My Documents를 입력하면 내 문서 폴더가 참조됩니다.
  • % WinDir %를 입력하면 Windows 폴더가 생성됩니다.
  • % tmp %를 입력하면 임시 파일에 액세스 할 수 있습니다.

Windows 변수

  • 기본 사용자의 변수
    • TEMP 임시 디렉토리
    • TMP 임시 디렉토리
  • 시스템 변수
    • ComSpec 명령 프롬프트의 변수 경로입니다.
    • FP_NO_HOST_CHECK?
    • NUMBER_OF_PROCESSORS입니까?
    • OS 사용중인 OS를 반환합니다.
    • 통로?
    • 숙제?
    • PROCESSOR_ARCHITECTURE 프로세서 아키텍처 (x86 등)를 반환합니다.
    • PROCESSOR_IDENTIFIER 프로세서 ID를 리턴합니다.
    • PROCESSOR_LEVEL?
    • PROCESSOR_REVISION 프로세서 개정 수를 반환합니다.
    • TEMP 임시 디렉토리.
    • TMP 임시 디렉토리.
    • Windows가 설치된 windir 폴더
    • Windows가 설치된 SystemRoot 폴더.

참고 사항 :

관리자로 로그인 한 경우 제어판 / 고급 시스템 / 환경 변수를 통해 변경할 수 있습니다.
이전 기사 다음 기사

톱 팁