본문 바로가기

엑셀/VBA

엑셀 VBA 파일 열기 메서드 - Open

반응형

이전 글에서 PageSetup 속성에 대해 알아보았습니다. 이번에는 Workbooks의 개체로 파일을 열 때 사용하는 Open 메서드에 대해 알아보겠습니다.

 

엑셀 VBA PageSetup 속성에 대해 알아보기

 

엑셀 VBA PageSetup 속성에 대해 알아보기

이전 글에서 PageSetup 속성을 이용하여 인쇄 시 머리글과 바닥글을 입력하는 방법에 대해 알아보았습니다. PageSetup에는 이외에도 많은 속성들이 존재하는데 어떠한 속성들이 있는지 알아보겠습니

mr-johndoe.tistory.com

 

 

 

 

 

1. Open 메서드

  파일 열기를 할 때 Workbooks 컬렉션의 Open 메서드를 사용합니다. 사용 방법은 다음과 같습니다.

 

   Workbooks.Open 매개변수

 

매개변수에 입력 가능한 내용을 다음 표로 정리해보았습니다.

 

매개변수 설 명
FileName 열고자 하는 파일의 이름 지정(경로 포함)
UpdateLinks 파일 외부 참조(링크)의 업데이트 방식 지정
0이면 외부 참조(링크) 업데이트를 하지 않고 파일이 열림
3이면 파일이 열릴 때 외부 참조(링크) 업데이트가 이루어짐
ReadOnly True이면 읽기 전용 모드로 파일을 엽니다.
Format 구분 문자를 설정
Password 파일을 열 때 보호 암호가 있는 경우 암호 설정
WriteResPassword 쓰기 암호가 설정된 파일을 열 때 암호 설정
IgnoreReadOnlyRecommanded True이면 읽기 전용 권장 메시지 창을 띄우지 않음
Delimiter 구분 문자로 지정할 문자를 설정(Format의 값을 6으로 설정하였을 경우)

Format에 입력 가능한 값에 대해 아래 표에 정리하였습니다.

설 명
1 탭(Tab)
2 콤마(,)
3 공백
4 세미콜론(;)
5 없음
6 사용자 정의

 

2. 파일 존재 여부 확인 방법

  파일 열기를 실행할 때 지정한 파일이 없는 경우는 에러가 발생하게 됩니다. 그러므로, 파일을 열기 전에 지정한 파일이 존재하는 지를 확인하여야 합니다. 이때 Dir 함수를 사용합니다. 사용 방법은 다음과 같습니다.

 

  Dir 매개변수

 

매개변수는 다음과 같습니다.

매개변수 설 명
pathname  설정한 파일명 및 폴더명과 일치하는 파일이 없는 경우  ""문자열을 반환
attributes 파일 속성 설정

 

매개변수 attributes에 입력 가능한 내장 상수는 다음과 같습니다.

내장상수 설 명
vbNormal 일반 파일
vbReadOnly 읽기 전용 파일
vbHidden 숨김 파일
vbSystem 시스템 속성 파일
vbVolume 불륨 레이블
vbDirectory 디렉토리

 

pathname에 지정한 파일이 존재하지 않으면 길이가 0인 문자열("")을 반환합니다.

 

 

 

 

3. 예제로 확인

  액셀 파일을 열고 ActiveX 버튼 하나를 생성하고 Caption에 '파일 열기'라고 입력합니다.

생성한 버튼을 마우스 왼쪽 버튼으로 더블클릭하여 코드창을 열고 다음과 같이 코딩합니다.

 

   Private Sub CommandButton1_Click()

      Dim file As String

      Dim Op As Workbook

      Dim IsOp As Boolean

 

      file = "D:\work\가계부.xlsx"

      If Dir(file) = "" Then

         MsgBox ("파일이 존재하지 않습니다.")

         Exit Sub

      End If

 

      On Error Resume Next

 

      Set Op = Workbooks(Dir(file))

      If IsOp = (Err.Number = 0) Then

         Workbooks.Open Filename:=file

      Else

         MsgBox ("파일이 열려있습니다.")

         Exit Sub

      End If

   End Sub

 

file = "D:\work\가계부.xlsx"

: 문자열 변수 file에 열고자 하는 파일명을 경로 포함하여 입력하였습니다. 파일은 원하시는 값으로 변경하시면 됩니다.

 

If Dir(file) = "" Then

      MsgBox ("파일이 존재하지 않습니다.")

      Exit Sub

End If

: Dir 함수를 이용하여 지정한 파일이 존재하는지 확인하여 반환 값이 길이가 0인 문자열("")인지를 확인하여 참이면 파일이 존재하지 않는 것이므로 '파일이 존재하지 않습니다.'라는 내용의 메시지 창을 열도록 하였습니다.

 

On Error Resume Next

: 에러가 발생하여도 다음 코드가 진행됩니다.

 

Set Op = Workbooks(Dir(file))

: Workbook 형식의 Op 변수에 지정한 파일을 입력하라는 명령으로 파일이 열려있지 않으면 에러 없이 진행

 

 If IsOp = (Err.Number = 0) Then

      Workbooks.Open Filename:=file

: 에러 값이 0이면 지정한 파일을 엽니다.

 

Else

      MsgBox ("파일이 열려있습니다.")

      Exit Sub

End If

: 에러값이 0이 아닌 경우 '파일이 열려있습니다.'라는 내용의 메시지 창을 열도록 하였습니다.

 

반응형