엑셀vba에서 통합문서를 저장하는 방법에는 두 가지가 있다.
ThisWorkbook.Save - 현재 문서에 저장
ThisWorkbook.SaveAs - 다른이름으로 저장
ThisWorkbook 자리에는 ActiveWorkbook, Workbooks("파일이름") 등
통합문서와 관련된 다양한 놈들이 들어 갈 수 있다.
.Save는 그대로 사용하면 되는 반면에
.SaveAs에는 설정 할 수 있는 파라미터가 12개나 존재한다.
살펴보자
1. .SaveAs 메소드 원형
SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)
파일명, 파일포맷(확장자), 패스워드, 쓰기 패스워드, 읽기전용 설정, 백업파일 생성, 액세스모드 설정 등등..
여러가지 많이 있지만 필수항목은 없고, 모두 선택사항이다.
하지만 파라미터를 넣지 않으면 .Save 메소드와 똑같이 동작한다.
2. .SaveAS 두번째 파라미터, FileFormat
FileFormat 자리에는 숫자나 vba에서 사전에 정의된 문자열을 사용 할 수 있다. (문자열의 명칭을 모름)
Sub Save_As_Test()
ThisWorkbook.SaveAs "Test", xlCSV
End sub
Sub Save_As_Test()
ThisWorkbook.SaveAs "Test", 6
End sub
위 코드는 현재 통합문서를 Test 이름의 csv 확장자로 저장하는 것이고, 저장 경로는 현재통합문서가 있는 곳이다.
xlCSV를 쓰거나, 6을 쓰거나 같은 CSV 파일로 저장된다.
Sub SAVE_AS()
Application.DisplayAlerts = False
Dim i As Integer
For i = 0 To 100
On Error Resume Next
ThisWorkbook.SaveAs i, i
Next i
End Sub
각 숫자들이 어떤 확장자로 저장되는지 확인하기 위해 테스트를 해봤다.
1 = xls, 2 = slk, 3 = txt, ..
파일 이름의 숫자 = 저장되는 확장자
0 ~ 100까지 돌려본 결과 저만큼 파일이 생성되었다.
3. 정리
이름 |
값 |
설명 |
xlAddIn |
18 |
Microsoft Excel 97-2003 추가 기능 |
xlAddIn8 |
18 |
Microsoft Excel 97-2003 추가 기능 |
xlCSV |
6 |
CSV |
xlCSVMac |
22 |
Macintosh CSV |
xlCSVMSDOS |
24 |
MSDOS CSV |
xlCSVWindows |
23 |
Windows CSV |
xlCurrentPlatformText |
-4158 |
현재 플랫폼 텍스트 |
xlDBF2 |
7 |
DBF2 |
xlDBF3 |
8 |
DBF3 |
xlDBF4 |
11 |
DBF4 |
xlDIF |
9 |
DIF |
xlExcel12 |
50 |
Excel12 |
xlExcel2 |
16 |
Excel2 |
xlExcel2FarEast |
27 |
Excel2 FarEast |
xlExcel3 |
29 |
Excel3 |
xlExcel4 |
33 |
Excel4 |
xlExcel4Workbook |
35 |
Excel4 통합 문서 |
xlExcel5 |
39 |
Excel5 |
xlExcel7 |
39 |
Excel7 |
xlExcel8 |
56 |
Excel8 |
xlExcel9795 |
43 |
Excel9795 |
xlHtml |
44 |
HTML 형식 |
xlIntlAddIn |
26 |
국제 형식 추가 기능 |
xlIntlMacro |
25 |
국제 형식 매크로 |
xlOpenDocumentSpreadsheet |
60 |
OpenDocument 스프레드시트 |
xlOpenXMLAddIn |
55 |
Open XML 추가 기능 |
xlOpenXMLTemplate |
54 |
Open XML 서식 파일 |
xlOpenXMLTemplateMacroEnabled |
53 |
Open XML 매크로 사용 서식 파일 |
xlOpenXMLWorkbook |
51 |
Open XML 통합 문서 |
xlOpenXMLWorkbookMacroEnabled |
52 |
Open XML 매크로 사용 통합 문서 |
xlSYLK |
2 |
SYLK |
xlTemplate |
17 |
서식 파일 |
xlTemplate8 |
17 |
서식 파일 8 |
xlTextMac |
19 |
Macintosh 텍스트 |
xlTextMSDOS |
21 |
MSDOS 텍스트 |
xlTextPrinter |
36 |
프린터 텍스트 |
xlTextWindows |
20 |
Windows 텍스트 |
xlUnicodeText |
42 |
유니코드 텍스트 |
xlWebArchive |
45 |
웹 보관 |
xlWJ2WD1 |
14 |
WJ2WD1 |
xlWJ3 |
40 |
WJ3 |
xlWJ3FJ3 |
41 |
WJ3FJ3 |
xlWK1 |
5 |
WK1 |
xlWK1ALL |
31 |
WK1ALL |
xlWK1FMT |
30 |
WK1FMT |
xlWK3 |
15 |
WK3 |
xlWK3FM3 |
32 |
WK3FM3 |
xlWK4 |
38 |
WK4 |
xlWKS |
4 |
워크시트 |
xlWorkbookDefault |
51 |
통합 문서 기본 |
xlWorkbookNormal |
-4143 |
통합 문서 일반 |
xlWorks2FarEast |
28 |
Works2 FarEast |
xlWQ1 |
34 |
WQ1 |
xlXMLSpreadsheet |
46 |
XML 스프레드시트 |
위 표에 나타난 이름이나 값을 쓰면 해당 확장자로 저장 할 수 있다.
끄읕
'컴퓨터 공부 > 엑셀 & VBA' 카테고리의 다른 글
[엑셀] 엑셀 2016으로 저장된 xlsx 파일을 엑셀 2007 에서 열어보자 (0) | 2020.10.20 |
---|---|
[엑셀vba] 셀에 엑셀 함수 입력해서 사용하기 (0) | 2020.09.13 |
[엑셀vba] 모듈이 아니라 변수나 프로시저가 필요합니다. (0) | 2020.09.09 |
[엑셀vba] Module 이름을 바꿔보자 (0) | 2020.09.09 |
[엑셀vba] 사용자 정의 폼에서 키 입력 받고 이벤트 실행하기 (0) | 2020.09.08 |