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

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

조회 수 8078 추천 수 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
번호 제목 글쓴이 날짜 조회 수sort
공지 기타 엑셀 VBA 간단한 팁 모아놓기.. +_+ [레벨:30]아별 2007-01-24 34360
25 특정영역에서 데이터베이스 끝까지, 수식 붙여넣기 또는 자동 채우기.. [레벨:30]a☆ 2005-07-29 6274
24 엑셀에서 익스플로러 컨트롤하기.. [레벨:30]a☆ 2005-07-21 6259
23 엑셀 사용자 정의 수식(UDF)에 도움말 넣는 방법. [레벨:30]아별 2009-11-11 5950
22 엑셀에서 vba식으로 영역설정하기.. [2] [레벨:30]a☆ 2004-10-21 5945
21 유저폼 크기 조절 가능하게 만들기 file [레벨:30]아별 2009-05-07 5930
20 마우스 좌표를 반환 받기 file [레벨:30]아별 2009-05-07 5913
19 기타 VBA로 인디언식 이름 만들어주는 사용자 정의 함수 만들기.. imagefile [1] [레벨:30]아별 2012-01-11 5861
18 스스로 사라지는 메시지 박스 file [1] [레벨:30]아별 2009-05-07 5680
17 바로 옆셀의 메모값 가져 오기 [1] [레벨:30]아별 2008-10-20 5560
16 엑셀 도구모음에 콤보박스로 매크로 실행하기.. +_+ [레벨:30]a☆ 2005-11-03 5511
15 메모 입력할때 사용자 이름 제거하고 입력하기.. [레벨:30]a☆ 2006-01-19 5491
14 셀의 상대 위치 이동< offset(행,열) >과 절대 위치 이동.. [레벨:30]a☆ 2004-10-20 5478
13 [펌] 엑셀로 최대 공약수 구하기 [2] [레벨:30]아별 2008-12-18 5347
12 엑셀 실행시 자동으로 실행 // 종료시 자동으로 실행 [레벨:30]아별 2004-10-25 5119
11 하이퍼링크 일괄 제거하기 [레벨:30]a☆ 2005-07-21 5044
10 엑셀의 내용을 복사해서 메모장을 띄우고 붙여넣기 [레벨:30]a☆ 2005-07-21 4839
9 기타 [VBA] 컴퓨터 이름 알아내기 등 PC 환경 변수 읽오이기.. Environ [레벨:30]아별 2015-04-08 4681
8 [엑셀VBA] 변수의 전달 [레벨:30]a☆ 2005-05-13 4679
7 [엑셀VBA 기본 규칙] 순환문.. [레벨:30]a☆ 2005-08-04 4233
6 엑셀에서 매크로 실행 동안 화면이 업데이트 되지 않게 하기.. [레벨:30]a☆ 2004-10-26 3954