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
번호 제목 글쓴이 날짜 조회 수
공지 엑셀일반 엑셀 짜투리 팁 모음.. imagefile [13] [레벨:30]아별 2005-07-22 26114
공지 엑셀일반 엑셀 잘 하는 요령은? _ 엑셀 추천사이트 포함 [2] [레벨:30]아별 2009-11-12 9819
공지 엑셀일반 엑셀 단축키(바로가는키, ShortCut) 총정리입니다. imagefile [230] [레벨:30]아별 2010-08-29 46063
72 엑셀일반 Excel 2010의 중단된 기능 및 수정된 기능 [레벨:30]아별 2017-01-20 52
71 엑셀일반 Excel 2013에서 중단된 기능 및 변경된 기능 image [레벨:30]아별 2017-01-20 56
» 엑셀VBA [VBA Tips] GetAttr() 디렉토리 속성 확인 에러 (8208을 리턴할 경우) [레벨:30]아별 2016-04-06 472
69 엑셀기초 엑셀 언어 설정 변경 방법.. imagefile [레벨:30]아별 2015-05-21 1534
68 엑셀기초 감사합니다~ [1] 열시히 2014-07-21 660
67 엑셀일반 [엑셀에러] stdole32.tlb imagefile [레벨:30]아별 2013-09-27 9838
66 엑셀기초 [초보용 팁] 엑셀 명칭 알아보기.. imagefile [7] [레벨:30]아별 2013-05-27 2175
65 엑셀기초 [초보용 팁] 수식을 값으로 만들기 imagefile [레벨:30]아별 2013-05-15 2465
64 API [펌] 윈도우 메시지(Windows Message) 목록 및 설명.. [레벨:30]아별 2013-03-06 2197
63 엑셀함수 INDEX와 SUMPRODUCT를 사용하여 2가지 이상 조건에 맞는 값 찾기.. imagefile [레벨:30]아별 2012-11-07 2203
62 엑셀일반 오피스 2013 프리뷰 버전 발표.. imagefile [레벨:30]아별 2012-07-24 2123
61 엑셀함수 [링크] (초보자를 위한) '엑셀 달인'으로 인정받는 '함수' 사용법 imagefile [레벨:30]아별 2012-05-25 3466
60 엑셀일반 [ XML ] 엑셀로 XML 데이터 다루기.. file [2] [레벨:30]아별 2011-12-26 7298
59 엑셀일반 인쇄 설정 팁.. 머리글, 바닥글에 페이지 번호 설정하는 방법 imagefile [2] [레벨:30]아별 2011-08-03 8924
58 엑셀일반 조건부 서식 적용하기 (로또 번호 맞춰 보기) imagefile [4] [레벨:30]아별 2011-04-11 5891
57 엑셀일반 엑셀 기본 제공 셀 표시형식입니다. file [레벨:30]아별 2011-03-05 3833
56 엑셀일반 젠쟝 2010.. 사라져 버린 Ctrl+Shift+0 [레벨:30]아별 2011-02-18 7464
55 엑셀일반 외부 파일에 연결된(외부 파일 참조) 셀 찾는 방법입니다. imagefile [4] [레벨:30]아별 2011-02-08 8152
54 엑셀일반 엑셀 2007에서 암호 설정하기 [1] [레벨:30]아별 2010-04-27 7952