Workbook 개체

Workbook 개체

노만e 2025. 3. 14. 04:34

엑셀 VBA에서 Workbook 개체엑셀 파일(통합 문서) 을 의미합니다.

Workbook 개체를 사용하면 파일 열기, 저장, 닫기, 시트 추가, 보호 설정 등 다양한 작업을 수행할 수 있습니다.

1. Workbook 개체 접근 방법

✅ 현재 활성화된 통합 문서 (Workbook) 사용

Dim wb As Workbook
Set wb = ActiveWorkbook ' 현재 활성화된 통합 문서 저장
MsgBox wb.Name ' 파일 이름 표시

✅ 특정 이름의 통합 문서 사용

Set wb = Workbooks("파일이름.xlsx")

✅ 새로운 통합 문서 생성

Dim wb As Workbook
Set wb = Workbooks.Add
wb.SaveAs "C:\Users\Desktop\새파일.xlsx"

✅ 특정 경로의 통합 문서 열기

Dim wb As Workbook
Set wb = Workbooks.Open("C:\Users\Desktop\기존파일.xlsx")

2. Workbook 개체의 주요 속성 (Properties)

속성
설명
예제
Name
통합 문서의 파일명 반환
MsgBox ActiveWorkbook.Name
Path
파일 경로 반환
MsgBox ActiveWorkbook.Path
FullName
파일명 + 전체 경로 반환
MsgBox ActiveWorkbook.FullName
Sheets
포함된 시트 개체 접근
ActiveWorkbook.Sheets.Count
Worksheets
포함된 워크시트 개체 접근
ActiveWorkbook.Worksheets.Count
Saved
저장 여부 확인
If ActiveWorkbook.Saved = False Then MsgBox "저장되지 않음"
ReadOnly
읽기 전용 여부 확인
MsgBox ActiveWorkbook.ReadOnly

3. Workbook 개체의 주요 메서드 (Methods)

메서드
설명
예제
Save
현재 파일 저장
ActiveWorkbook.Save
SaveAs
다른 이름으로 저장
ActiveWorkbook.SaveAs "C:\Users\Desktop\새파일.xlsx"
Close
통합 문서 닫기
ActiveWorkbook.Close False (저장 안 함)
Open
파일 열기
Workbooks.Open "C:\파일.xlsx"
Activate
해당 통합 문서 활성화
Workbooks("파일.xlsx").Activate
Protect
통합 문서 보호
ActiveWorkbook.Protect "암호"
Unprotect
보호 해제
ActiveWorkbook.Unprotect "암호"

4. Workbook 개체 활용 예제

📌 1) 모든 열려있는 통합 문서 목록 출력하기

Sub 모든_워크북_출력()
Dim wb As Workbook
For Each wb In Workbooks
Debug.Print wb.Name ' Ctrl + G (즉시 실행 창)에서 확인 가능
Next wb
End Sub

📌 2) 특정 파일 열고 데이터 입력 후 저장 & 닫기

Sub 파일_열기_입력_저장_닫기()
Dim wb As Workbook
Set wb = Workbooks.Open("C:\Users\Desktop\데이터.xlsx") ' 파일 열기
wb.Sheets("Sheet1").Range("A1").Value = "VBA 테스트" ' 데이터 입력
wb.Save ' 저장
wb.Close ' 닫기
End Sub

📌 3) 특정 파일 저장 후 닫기

Sub 저장_닫기()
ActiveWorkbook.Save ' 저장
ActiveWorkbook.Close False ' 저장 후 닫기
End Sub

📌 4) 저장되지 않은 파일 경고 후 저장 & 닫기

Sub 변경_저장_체크()
Dim wb As Workbook
Set wb = ActiveWorkbook

If wb.Saved = False Then
If MsgBox("파일이 저장되지 않았습니다. 저장할까요?", vbYesNo) = vbYes Then
wb.Save
End If
End If

wb.Close False ' 닫기
End Sub

📌 5) 현재 열려있는 모든 통합 문서 저장 후 닫기

Sub 모든_워크북_저장_닫기()
Dim wb As Workbook
For Each wb In Workbooks
If wb.Saved = False Then wb.Save
wb.Close False
Next wb
End Sub

📌 6) 통합 문서 보호 설정 & 해제

Sub 워크북_보호()
ActiveWorkbook.Protect Password:="1234"
End Sub
Sub 워크북_보호_해제()
ActiveWorkbook.Unprotect Password:="1234"
End Sub

📌 7) 파일 자동 백업 기능 (현재 파일을 복사)

Sub 파일_백업()
Dim backupPath As String
backupPath = "C:\Users\Desktop\백업_" & Format(Now, "yyyymmdd_hhmmss") & ".xlsx"
ActiveWorkbook.SaveCopyAs backupPath
MsgBox "백업 완료: " & backupPath
End Sub

📝 정리

  1. Workbooks.Add → 새 통합 문서 생성
  2. Workbooks.Open("파일경로") → 기존 파일 열기
  3. .Save, .SaveAs → 저장
  4. .Close, .Activate, .Protect → 파일 관리 가능
  5. VBA를 활용해 여러 개의 파일을 한 번에 관리하고 자동화 가능

🔥 Workbook 개체를 활용하면 엑셀 파일을 효율적으로 자동화할 수 있습니다! 🚀