본문 바로가기
Workbook object

통합문서 저장하기

2023. 6. 24.

통합문서 저장하기

Sub SaveWorkbookExample()
    ThisWorkbook.Save ' 현재 통합문서 저장
    MsgBox "통합문서가 저장되었습니다."
End Sub

다른 이름으로 저장하기

Sub SaveWorkbook()
    Dim wb As Workbook
    Dim savePath As String
    
    ' 파일 열기
    Set wb = Workbooks.Open("D:\VBA Folder\NewFile.xlsx")
    
    ' 저장할 경로와 파일 이름 지정
    savePath = "D:\Temp\MyFile.xlsx"
    
    ' 파일이 이미 존재하는지 확인
    If FileExists(savePath) Then
        ' 파일이 이미 존재하는 경우 사용자에게 덮어쓸지 여부를 확인
        Dim response As VbMsgBoxResult
        response = MsgBox("파일이 이미 존재합니다. 덮어쓰시겠습니까?", vbQuestion + vbYesNo)
        
        ' 사용자의 응답에 따라 처리
        If response = vbYes Then
            ' 워크북 저장
            Application.DisplayAlerts = False ' 경고 메시지 표시 비활성화
            wb.SaveAs savePath
            Application.DisplayAlerts = True ' 경고 메시지 표시 활성화
        Else
            ' 파일 닫기 후 종료
            wb.Close SaveChanges:=False
            Exit Sub
        End If
    Else
        ' 워크북 저장
        wb.SaveAs savePath
    End If
    
    ' 파일 닫기
    wb.Close SaveChanges:=False
End Sub
Function FileExists(filePath As String) As Boolean
    FileExists = (Dir(filePath) <> "")
End Function

파일 형식 지정해서 저장하기

Sub SaveWorkbook()
    Dim wb As Workbook
    Dim savePath As String
    Dim response As VbMsgBoxResult
    Dim fileFormat As XlFileFormat
    ' 파일 열기
    Set wb = Workbooks.Open("D:\VBA Folder\NewFile.xlsx")
    
    ' 저장할 경로와 파일 이름 지정
    savePath = "D:\Temp\MyFile.xlsx"
    
    '파일 형식 지정
    fileFormat = xlOpenXMLWorkbook
    
    ' 파일이 이미 존재하는지 확인
    If FileExists(savePath) Then
        ' 파일이 이미 존재하는 경우 사용자에게 덮어쓸지 여부를 확인
        
        response = MsgBox("파일이 이미 존재합니다. 덮어쓰시겠습니까?", vbQuestion + vbYesNo)
        
        ' 사용자의 응답에 따라 처리
        If response = vbYes Then
            ' 워크북 저장
            Application.DisplayAlerts = False ' 경고 메시지 표시 비활성화
            wb.SaveAs savePath, fileFormat:=fileFormat
            Application.DisplayAlerts = True ' 경고 메시지 표시 활성화
        Else
            ' 파일 닫기 후 종료
            wb.Close SaveChanges:=False
            Exit Sub
        End If
    Else
        ' 워크북 저장
        wb.SaveAs savePath, fileFormat:=fileFormat
    End If
    
    ' 파일 닫기
    wb.Close SaveChanges:=False
End Sub
Function FileExists(filePath As String) As Boolean
    FileExists = (Dir(filePath) <> "")
End Function

 

XlFileFormat enumeration은 아래 링크를 참고하세요.

 

 

XlFileFormat enumeration (Excel)

Office VBA reference topic

learn.microsoft.com

 

아래 링크는 Workbook.SaveAs 메서드 도움말입니다.

 

https://learn.microsoft.com/en-us/office/vba/api/excel.workbook.saveas

 

Workbook.SaveAs method (Excel)

Office VBA reference topic

learn.microsoft.com

복사본 저장하기

Sub SaveWorkbookCopy()
    ThisWorkbook.SaveCopyAs "D:\Temp\MyFile_Copy.xlsx"
End Sub

백업 파일 생성하기

Sub CreateBackup()
    Dim originalFilePath As String
    Dim backupFilePath As String
    Dim currentDate As String

    ' 원본 파일 경로
    originalFilePath = ThisWorkbook.Path & "\"

    ' 현재 날짜를 가져와서 "yyyy-mm-dd" 형식으로 포맷합니다.
    currentDate = Format(Date, "yyyy-mm-dd")

    ' 백업 파일 경로 및 파일 이름을 설정합니다.
    backupFilePath = originalFilePath & "Backup\" & currentDate & Space(1) & ThisWorkbook.Name

    ' 백업 파일을 생성합니다.
    ThisWorkbook.Save
    ThisWorkbook.SaveCopyAs backupFilePath

    MsgBox "백업 파일이 생성되었습니다."

End Sub

'Workbook object' 카테고리의 다른 글

엑셀 문서 속성 수정하기  (0) 2023.08.25
통합문서 닫기  (0) 2023.06.24
엑셀 파일 열기  (0) 2023.06.23
엑셀 통합문서 만들기  (0) 2023.06.22