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

[VBA팁] 화일이 존재하는지 확인하기

조회 수 8029 추천 수 0 2009.07.31 00:43:25

file을 오픈할때나, 객체를 삽입할때나..

해당 파일이 있는지 없는지 확인해보고, 없으면 에러 처리를 해야겠지요..

 

VBA에서는 DIR함수를 사용해서 파일이 존재하는지 확인합니다.

 

    Dim strFile as string

    strFile = "D:\DeskTop\exel\abyul.com\insertPicture\images\abcd.jpg"

 

    Dim fileName As String
    fileName = Dir(strFile)

 

    If Len(fileName) > 0 Then

        파일을 열든.. 이미지를 삽입하든.. 등등

    Else

        MsgBox "화일이 없어요~", vbInformation, "룰루랄라 화일 없음 에러창"
        End
    End If

 

아래 구문이 핵심이지요.. Dir함수는 파일이 없으면 길이가 0인 문자열("")을 리턴하거든요..

     If Len(fileName) > 0 Then

 

 

Dir함수를 도움말에서 찾아보면 아래와 같습니다.

 

Dir 함수
지정한 패턴이나 파일 속성, 또는 드라이브 볼륨 레이블과 일치하는 파일, 디렉터리, 폴더 이름을 나타내는 String을 반환합니다.
구문
Dir[(pathname[, attributes])]
Dir 함수 구문은 다음과 같은 구성 요소로 되어 있습니다.
구성 요소 설명
pathname 선택적인 요소. 파일 이름을 지정하는 문자식이며, 디렉터리나 폴더, 드라이브가 포함될 수 있습니다. pathname을 찾지 못하면 길이가 0인 문자열("")을 반환합니다.
attributes 선택적인 요소. 상수 또는 수식이 되며, 그 합은 파일 속성을 지정합니다. attributes 인수가 생략되면 pathname과 일치하는 파일을 반환하지만 속성은 갖지 않습니다.
설정
attributes 인수는 다음과 같이 설정되어 있습니다.
상수 설명
vbNormal 0 속성이 없는 일반적인 파일을 지정합니다(기본값).
vbReadOnly 1 읽기 전용 파일 속성을 지정합니다.
vbHidden 2 숨김 파일 속성을 지정합니다.
vbSystem 4 시스템 파일 속성을 지정합니다.
vbVolume 8 볼륨 레이블. 다른 속성이 지정되면 vbVolume 속성은 무시됩니다. 매킨토시에서는 사용할 수 없습니다.
vbDirectory 16 디렉터리나 폴더를 지정합니다.
vbAlias 64 지정된 파일 이름이 별칭입니다. 매킨토시에서만 사용할 수 있습니다.
메모   Visual Basic으로 이러한 상수들을 지정하며 코드에서 실제값 대신에 사용할 수 있습니다.
참고
Microsoft Windows에서 Dir 함수는 여러 파일을 지정하는 다중 문자 와일드카드(*) 문자와 단일 문자 와일드카드(?)의 사용을 지원합니다. 하지만 매킨토시에서 이 문자는 유효한 파일 이름 문자로 간주되고 여러 파일을 지정하는 와일드카드 문자로 사용할 수 없습니다.
매킨토시에서는 와일드카드 문자를 사용할 수 없기 때문에 파일 형식을 사용하여 파일 그룹을 식별합니다. 파일 이름을 사용하지 않고 MacID 함수를 사용하여 파일 형식을 지정할 수 있습니다. 예를 들어 다음은 현재 폴더에 있는 첫 텍스트 파일 이름을 반환하는 예입니다.
Dir("SomePath", MacID("TEXT"))
폴더의 모든 파일을 언급하려면 비어있는 문자열을 지정합니다.
Dir("")
Microsoft Windows에서 Dir 함수와 함께 MacID 함수를 사용하면 오류가 발생합니다.
256 보다 큰 attribute 값은 MacID 값으로 간주합니다.
Dir 함수를 처음 호출할 때 pathname을 지정해야 하고 그렇지 않으면 오류가 발생합니다. 파일 특성도 지정하려면 pathname을 반드시 포함시켜야 합니다.
Dir 함수는 pathname과 일치하는 첫째 파일 이름을 반환합니다. pathname과 일치하는 다른 추가적인 파일 이름을 가져오려면 Dir 함수를 인수없이 다시 호출하십시오. 일치하는 파일 이름이 없으면 Dir 함수는 길이가 0인 문자열("")을 반환합니다. 일단 길이가 0인 문자열이 반환되면 이후 호출에서는 pathname을 지정해야 하고, 그렇지 않으면 오류가 발생합니다. 현재 pathname과 일치하는 모든 파일 이름을 검색하지 않고 새 pathname 을 변경할 수 있습니다. 하지만 Dir 함수를 순환적으로 호출할 수는 없습니다. vbDirectory 특성과 Dir 함수를 함께 호출하면 연속적으로 하위 디렉터리를 반환하지 않습니다.
팁   파일 이름을 특별한 순서없이 검색했으므로 반환된 파일을 배열에 저장한 다음 배열을 정렬할 수 있습니다.

문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 기타 엑셀 VBA 간단한 팁 모아놓기.. +_+ [레벨:30]아별 2007-01-24 33935
44 기타 엑셀 기본 제공 대화 상자 인수 목록 file [레벨:30]아별 2009-11-04 8015
43 엑셀2007에서 셀의 색상을 RGB로 뽑아내기 file [레벨:30]아별 2009-10-06 10226
» [VBA팁] 화일이 존재하는지 확인하기 [레벨:30]아별 2009-07-31 8029
41 엑셀에서 사용하는 언어 확인하기. file [1] [레벨:30]아별 2009-06-03 13807
40 메시지 박스 대용으로 Shape 사용하기 file [레벨:30]아별 2009-05-07 16070
39 유저폼 크기 조절 가능하게 만들기 file [레벨:30]아별 2009-05-07 5845
38 스스로 사라지는 메시지 박스 file [1] [레벨:30]아별 2009-05-07 5609
37 마우스 좌표를 반환 받기 file [레벨:30]아별 2009-05-07 5823
36 [펌] Excel Macro(VBA) 입문자를 위한 소개자료 image [레벨:30]아별 2008-12-19 6655
35 기타 [Excel VBA] 피벗테이블(PivotTable)을 VBA로 컨트롤해보자.. [레벨:30]아별 2008-12-19 12159
34 [펌] 엑셀로 최대 공약수 구하기 [2] [레벨:30]아별 2008-12-18 5282
33 바로 옆셀의 메모값 가져 오기 [1] [레벨:30]아별 2008-10-20 5493
32 [엑셀VBA] ERROR CODE file [레벨:30]아별 2008-08-28 7382
31 [엑셀VBA] 자동필터를 매크로로 구현하기 [레벨:30]아별 2008-08-28 11255
30 [VBA] 전역변수 설정하기. Public 문, Private 문 imagefile [레벨:30]아별 2008-07-01 14068
29 [엑셀VBA] 네이버 지식인 답변 _ 엑셀 쿼리를 이용해서 펀드 기준가 데이터를 읽어오기. file [레벨:30]아별 2008-04-30 9150
28 엑셀 추가 기능 만들기 [레벨:30]a☆ 2006-01-19 7346
27 메모 입력할때 사용자 이름 제거하고 입력하기.. [레벨:30]a☆ 2006-01-19 5410
26 시트에서 콤보박스 활용하기 file [레벨:30]a☆ 2005-11-12 16749