이전 글에서 대화 상자를 통해 파일을 여는 방법에 대해 알아보았습니다. 이번에는 파일을 닫는 메서드 Close와 새로 엑셀 파일을 만드는 메서드 Add에 대해 알아보겠습니다.
엑셀 VBA 대화상자를 통해 파일 선택하여 불러오기 메서드 - GetOpenFilename
1. Close 메서드
Open 메서드로 파일을 열 수 있듯이 파일을 닫을 수 있는 메서드도 존재하는데, Close 메서드가 파일을 닫을 때 사용하는 메서드입니다.
사용 방법은 다음과 같습니다.
Workbook.Close 매개변수:=설정값
매개변수에 대해 다음 표로 정리해보았습니다.
매개변수 | 설 명 |
SaveChanges | 파일을 닫을 때 파일의 저장 여부 설정 |
Filename | 수정된 사항 저장 시 사용할 파일 이름 설정 |
RouteWorkbook | 이메일로 파일 첨부시 해당 메일로 파일을 전송할지 설정 |
2. Add 메서드
엑셀 파일을 새로 생성하려면 Workbooks 컬렉션의 Add 메서드를 사용하면 가능합니다. 사용 방법은 다음과 같습니다.
Workbooks.Add (매개변수)
매개변수에는 새로 생성하는 파일의 형식을 지정합니다. 매개변수에 사용되는 내장 상수는 다음과 같습니다.
내장 상수 | 설 명 |
xlWBATChart | 차트 |
xlWBATWorksheet | 워크시트 |
xlWBATExcel4MacroSheet | 엑셀 버전 4 매크로 |
xlWBATExcel4IntlMacroSheet | 엑셀 버전 4 국제 매크로 |
3. 예제로 확인
엑셀을 여시고 엑셀 시트에 ActiveX 버튼 하나를 생성합니다. 버튼 속성에서 Caption에 '새 워크시트'라고 입력합니다. 그리고, 생성한 버튼을 마우스 왼쪽 버튼으로 더블클릭하셔서 코드 창을 엽니다. 코드 창에 다음 코드를 입력합니다.
Private Sub CommandButton1_Click()
Workbooks.Add
End Sub
코드를 입력하시고 생성하신 버튼을 클릭하시면 새 워크시트가 생성됩니다.
버튼을 만드신 엑셀 시트 이름이 '통합 문서1'이므로 '통합 문서 2'라는 이름으로 시트가 생성됩니다.
새로 생성된 워크시트의 시트 수는 sheet1 한개가 생성되었습니다. 이것은 사용하시는 분들 엑셀 설정에 따라 다르게 나타날 것입니다.
새로 워크시트를 생성할 때 생성되는 시트 수 설정은 엑셀 옵션에 들어가시면 변경 가능합니다.
엑셀 메뉴에서 파일-옵션을 클릭하면 엑셀 옵션창이 출력됩니다. ([그림 1] 참조)
[그림 1]에서 빨간 색으로 표시된 부분이 새 워크시트를 생성할 때 생성되는 시트 수를 설정하는 메뉴입니다. 여기에 원하시는 수를 입력하시면 생성되는 시트 수를 조정할 수 있습니다.
VBA에서 생성되는 시트 수를 조정하려면 SheetsInNewWorkbook 속성을 사용하면 가능합니다. 그러면 새로 생성되는 워크시트의 시트수를 5개로 변경하는 예제를 작성해 보겠습니다.
Private Sub CommandButton1_Click()
Dim i As Integer
i = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 5
Workbooks.Add
Application.SheetsInNewWorkbook = i
End Sub
Dim i As Integer
: 정수형 변수 i를 선언하였습니다.
i = Application.SheetsInNewWorkbook
: 변수 i에 기본으로 설정되어 있는 생성 시트 수를 입력합니다. 이는 값을 변경하여 사용 후 원래 상태로 돌려놓기 위한 것입니다.
Application.SheetsInNewWorkbook = 5
: 생성되는 시트 수를 5로 변경하였습니다.
Workbooks.Add
: 새로운 워크 시트을 생성합니다.
Application.SheetsInNewWorkbook = i
:생성되는 시트 수를 원래 값으로 환원시킵니다.
버튼을 클릭하여 코드를 실행하면 새로 워크시트가 생성되면서 시트수는 sheet1 ~ sheet5까지 5개가 생성됩니다.
다음은 워크시트를 닫는 예제입니다. 워크시트에 ActiveX 버튼을 생성하고 Caption에 '워크시트 닫기'라고 입력합니다. 생성한 버튼을 더블 클릭하고 다음 코드를 코드 창에 입력합니다.
Private Sub CommandButton2_Click()
On Error Resume Next
Workbooks.Close
End Sub
On Error Resume Next
: 에러 발생시 무시하고 다음 코드를 진행하라는 명령입니다.
Workbooks.Close
:현재 활성화된 워크시트를 닫으라는 명령입니다.
버튼을 클릭하시면 워크시트를 저장할 것인지 물어보는 메시지 창이 뜹니다.
'엑셀 > VBA' 카테고리의 다른 글
엑셀 VBA 텍스트 상자(TextBox) 컨트롤 사용하기 (0) | 2022.01.06 |
---|---|
엑셀 VBA UserForm 만들기 및 화면에 출력하기 (0) | 2022.01.04 |
엑셀 VBA 대화상자를 통해 파일 선택하여 불러오기 메서드 - GetOpenFilename (0) | 2021.12.30 |
엑셀 VBA 파일 열기 메서드 - Open (0) | 2021.12.29 |
엑셀 VBA PageSetup 속성에 대해 알아보기 (0) | 2021.12.28 |