1. 아별툴
  2. 아별툴 패밀리
  3. 엑셀 질문하기
  4. 엑셀 강좌
  5. 엑셀 팁
  6. 엑셀 자료실
  7. 엑셀 연구과제
  8. 엑셀 북마크
  9. 관련 프로그램 소개

안녕하세요?

아별닷컴의 주인장 오주원입니다.



아별툴을 사용하다가..

원하는 결과물이 안 나와서 살펴보니.. 에러가 있어서 수정하면서 알게된 팁을 공유합니다.


아별툴에는 특정 폴더의 파일 리스트를 생성해주는 기능이 있습니다.

아별툴 리본메뉴 > 정보 > "특정 폴더의 파일 리스트 생성" 을 클릭하면 파일 리스트를 생성할 수 있습니다.


원래는 하위 폴더를 포함해서 생성하도록 프로그래밍했는데,

어째선지 최 상위 폴더의 리스트만 만들어서 확인해보니 GetAttr()함수의 리턴값이 예상 외의 값을 리턴하는 것이었습니다.


원래 코드는 아래와 같았습니다.

           If GetAttr(Path & strFile) = vbDirectory Then


특정 경로의 파일 또는 폴더의 속성이 디렉토리(vbDirectory)이면 그 하위 폴더를 검색하는 작업을 하게 했는데,

GetAttr(Path & strFile)의 결과값이 vbDirectory의 값이 16이 아니라 8208이 나오는 것입니다.

그래서 하위 폴더를 모두 패스해버리더군요..


그래서 검색해보니 아래와 같은 안내가 있었습니다.


http://www.tek-tips.com/viewthread.cfm?qid=751597


 Private Const FILE_ATTRIBUTE_DIRECTORY = 16
 Private Const FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192


위 두개 상수를 더해서 8192+16 = 8208이 나온 것이라구요..

그래서 해당 경로의 속성에 폴더의 속성이 포함된건지 확인하려면 아래와 같이 해야한다고 하네요..


            If (GetAttr(Path & strFile) And vbDirectory) = vbDirectory Then


위와 같이 수정해서 하위 폴더도 잘 검색되도록 업데이트했습니다.

수정된 아별툴은 몇가지를 더 수정해서 공개하도록 하겠습니다.


도움이 되셨기를..




참고로)

디렉토리가 아닌 파일의 경우는 GetAttr(Path & strFile) And vbDirectory 의 결과값이 0이 나옵니다.

디렉토리는 GetAttr(Path & strFile) And vbDirectory의 결과값이 16이 리턴을 합니다.



Visual Basic의 팁이지만, 같은 내용이니 아래 링크의 MSDN문서도 확인해보세요..

https://msdn.microsoft.com/en-us/library/hds568h4(v=vs.90).aspx


' Test for normal. 
If (MyAttr And FileAttribute.Normal) = FileAttribute.Normal Then
   MsgBox("This file is normal.")
End If 

' Test for normal and readonly. 
Dim normalReadonly As FileAttribute
normalReadonly = FileAttribute.Normal Or FileAttribute.ReadOnly 
If (MyAttr And normalReadonly) = normalReadonly Then
   MsgBox("This file is normal and readonly.")
End If 

' Assume MYDIR is a directory or folder.
MyAttr = GetAttr("C:\MYDIR")
If (MyAttr And FileAttribute.Directory) = FileAttribute.Directory Then
   MsgBox("MYDIR is a directory")
End If

문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
공지 엑셀일반 엑셀 짜투리 팁 모음.. imagefile [13] [레벨:30]아별 2005-07-22 92359
공지 엑셀일반 엑셀 잘 하는 요령은? _ 엑셀 추천사이트 포함 [2] [레벨:30]아별 2009-11-12 81189
공지 엑셀일반 엑셀 단축키(바로가는키, ShortCut) 총정리입니다. imagefile [247] [레벨:30]아별 2010-08-29 157527
56 엑셀일반 엑셀에서 다른 파일/시트 참조하기/영역설정하기 [레벨:30]a☆ 2004-10-15 15487
55 엑셀기초 [초보용 팁] 엑셀 명칭 알아보기.. imagefile [7] [레벨:30]아별 2013-05-27 14547
54 엑셀일반 유효성 검사를 이용하여 대분류와 소분류의 연동 목록 작성하기 imagefile [3] [레벨:30]아별 2007-01-07 14353
53 엑셀일반 사용자 지정 숫자 서식 만들기 또는 삭제 (셀서식, number format) imagefile [레벨:30]아별 2009-11-04 14239
52 엑셀기초 엑셀 언어 설정 변경 방법.. imagefile [레벨:30]아별 2015-05-21 14056
51 API Win32 API 를 공부하기 시작해봅시당~ 꺄~ >.< file [레벨:30]아별 2009-11-21 14051
50 엑셀일반 Excel 2010의 중단된 기능 및 수정된 기능 [레벨:30]아별 2017-01-20 13794
49 엑셀기초 감사합니다~ [1] 열시히 2014-07-21 12870
48 엑셀일반 수식을 이용한 줄바꿈. " =A1 & char(10) & B1 " file [레벨:30]아별 2005-03-03 12818
47 엑셀일반 엑셀 기본 제공 셀 표시형식입니다. file [레벨:30]아별 2011-03-05 12555
46 엑셀일반 엑셀에서 시간차이 구하기 imagefile [레벨:30]아별 2008-08-29 12520
45 엑셀일반 [링크] 아이엑셀러 강좌 다운로드 링크입니다. file [레벨:30]아별 2009-12-06 12463
44 엑셀일반 엑셀에서 영어의 자간이 이상하게 벌어져서 타이핑 될때.. file [4] [레벨:30]아별 2008-10-20 12299
43 엑셀일반 엑셀2003 단축키 모음 (Exel ShortCuts)-- file [레벨:30]아별 2008-10-29 12219
42 엑셀함수 [링크] (초보자를 위한) '엑셀 달인'으로 인정받는 '함수' 사용법 imagefile [레벨:30]아별 2012-05-25 12172
41 엑셀일반 엑셀에서 열과 행의 데이터를 변환할때.. [1] [레벨:30]a☆ 2005-03-17 11658
40 엑셀기초 [초보용 팁] 수식을 값으로 만들기 imagefile [레벨:30]아별 2013-05-15 11575
39 엑셀일반 피벗테이블의 부분합에 대한 비율 구하기 file [레벨:30]아별 2009-11-10 11526
38 엑셀일반 숫자를 한자, 한글, 영문으로 변환하여 표시하기. imagefile [레벨:30]아별 2008-08-21 11441
37 엑셀일반 윈도우즈 기본 단축키(바로가기 키)입니다. image [2] [레벨:30]아별 2009-12-02 10959