이전 글에서 PageSetup 속성에 대해 알아보았습니다. 이번에는 Workbooks의 개체로 파일을 열 때 사용하는 Open 메서드에 대해 알아보겠습니다.
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이 아닌 경우 '파일이 열려있습니다.'라는 내용의 메시지 창을 열도록 하였습니다.
'엑셀 > VBA' 카테고리의 다른 글
엑셀 VBA 파일 닫기 및 새로 만드는 메서드 - Close, Add (0) | 2021.12.31 |
---|---|
엑셀 VBA 대화상자를 통해 파일 선택하여 불러오기 메서드 - GetOpenFilename (0) | 2021.12.30 |
엑셀 VBA PageSetup 속성에 대해 알아보기 (0) | 2021.12.28 |
엑셀 VBA 인쇄시 머리글 및 바닥글 설정하기 속성 - PageSetup (0) | 2021.12.27 |
엑셀 VBA 워크시트 인쇄하기 메서드 - PrintOut (0) | 2021.12.24 |