엑셀 VBA에서 Auto_Open()은 워크북이 열릴 때 자동으로 실행되는 매크로입니다.
즉, 사용자가 직접 매크로를 실행하지 않아도, 엑셀 파일이 열릴 때 특정 작업을 자동으로 수행할 수 있습니다.
1. 기본 문법
Sub Auto_Open()
' 실행할 코드
End Sub
|
- 엑셀 파일이 열릴 때(Workbook.Open 이벤트와 유사) 자동 실행됨
- 워크북이 매크로 활성화 상태여야 실행됨
- Auto_Open()은 모듈(Module)에 작성해야 함 (워크시트 또는 ThisWorkbook에 작성하면 실행되지 않음)
📌 하지만, Auto_Open()은 Workbook_Open() 이벤트보다 덜 권장됨!
📌 대신 Workbook_Open()을 사용하는 것이 더 안정적 (ThisWorkbook에 작성)
2. 엑셀 파일이 열릴 때 특정 메시지 표시
Sub Auto_Open()
MsgBox "이 엑셀 파일이 열렸습니다!", vbInformation, "자동 실행"
End Sub
|
📌 엑셀 파일이 열릴 때 "이 엑셀 파일이 열렸습니다!" 메시지 박스 표시
3. 엑셀이 열릴 때 특정 시트 활성화
Sub Auto_Open()
Sheets("홈").Activate
End Sub
|
📌 엑셀이 열릴 때 "홈" 시트를 자동으로 활성화
4. 엑셀이 열릴 때 특정 셀 선택
Sub Auto_Open()
Sheets("데이터").Activate
Range("A1").Select
End Sub
|
📌 "데이터" 시트를 활성화하고 A1 셀을 선택
5. 엑셀이 열릴 때 특정 파일 자동 열기
Sub Auto_Open()
Workbooks.Open "C:\Users\Public\데이터.xlsx"
End Sub
|
📌 엑셀이 열릴 때 데이터.xlsx 파일을 자동으로 열기
6. 엑셀이 열릴 때 특정 웹사이트 자동 열기
Sub Auto_Open()
ActiveWorkbook.FollowHyperlink "https://www.google.com"
End Sub
|
📌 엑셀이 열릴 때 브라우저에서 Google 웹사이트 열기
7. 엑셀이 열릴 때 자동으로 특정 매크로 실행
Sub Auto_Open()
Application.Run "내매크로"
End Sub
Sub 내매크로()
MsgBox "자동 실행된 매크로입니다!"
End Sub
|
📌 엑셀 파일이 열리면 내매크로가 자동 실행됨
8. 엑셀이 열릴 때 자동으로 데이터 업데이트
Sub Auto_Open()
' 현재 날짜 입력
Sheets("보고서").Range("B2").Value = Date
End Sub
|
📌 엑셀이 열릴 때 보고서 시트의 B2 셀에 현재 날짜를 입력
9. 엑셀이 열릴 때 자동으로 특정 폴더의 파일 목록 가져오기
Sub Auto_Open()
Dim 파일 As String
Dim i As Integer
i = 1
파일 = Dir("C:\Users\Public\*.xlsx")
Do While 파일 <> ""
Sheets("목록").Cells(i, 1).Value = 파일
i = i + 1
파일 = Dir()
Loop
End Sub
|
📌 엑셀이 열릴 때 C:\Users\Public\ 폴더의 .xlsx 파일 목록을 "목록" 시트에 저장
10. 엑셀이 열릴 때 특정 데이터 자동 보호
Sub Auto_Open()
Sheets("데이터").Protect Password:="1234"
End Sub
|
📌 엑셀 파일이 열릴 때 "데이터" 시트를 암호(1234)로 보호
11. 엑셀이 열릴 때 특정 경고 메시지 비활성화
Sub Auto_Open()
Application.DisplayAlerts = False
Application.AskToUpdateLinks = False
End Sub
|
📌 엑셀이 열릴 때 불필요한 경고 메시지와 링크 업데이트 요청 창 비활성화
12. 엑셀이 열릴 때 특정 매크로가 실행되도록 설정하는 방법
🔹 방법 1: Auto_Open() 사용 (모듈에 작성)
Sub Auto_Open()
MsgBox "이 파일이 열릴 때 자동 실행됩니다!", vbInformation
End Sub
|
📌 엑셀이 열릴 때 자동 실행됨 (모듈에 작성해야 함)
🔹 방법 2: Workbook_Open() 사용 (ThisWorkbook에 작성)
Private Sub Workbook_Open()
MsgBox "이 파일이 열릴 때 자동 실행됩니다!", vbInformation
End Sub
|
📌 ThisWorkbook의 Workbook_Open() 이벤트를 사용하면 더 안정적
📌 Auto_Open()보다 Workbook_Open()이 권장됨
13. Auto_Open() vs Workbook_Open() 비교
기능
|
Auto_Open()
|
Workbook_Open()
|
위치
|
표준 모듈
|
ThisWorkbook 개체
|
사용자 실행 필요 여부
|
필요 없음
|
필요 없음
|
매크로 보안 영향
|
매크로 활성화 필요
|
매크로 활성화 필요
|
이벤트 기반 실행 가능 여부
|
❌
|
✅ (Workbook_Close(), Workbook_SheetActivate() 등과 함께 사용 가능)
|
사용 추천 여부
|
🔹 덜 권장됨
|
✅ 더 안정적이고 권장됨
|
📌 엑셀에서 파일이 열릴 때 매크로 실행이 필요하면 Workbook_Open() 사용을 추천
📌 Auto_Open()은 구버전(엑셀 2003 이하)과 호환성을 고려할 때만 사용
📝 정리
기능
|
VBA 코드 (Auto_Open())
|
파일 열릴 때 메시지 표시
|
MsgBox "이 파일이 열렸습니다!"
|
특정 시트 활성화
|
Sheets("홈").Activate
|
특정 셀 선택
|
Range("A1").Select
|
다른 파일 자동 열기
|
Workbooks.Open "경로"
|
웹사이트 자동 열기
|
ActiveWorkbook.FollowHyperlink "https://google.com"
|
자동으로 데이터 업데이트
|
Sheets("보고서").Range("B2").Value = Date
|
파일 목록 자동 가져오기
|
Dir("C:\Users\Public\*.xlsx")
|
시트 보호
|
Sheets("데이터").Protect Password:="1234"
|
경고 메시지 비활성화
|
Application.DisplayAlerts = False
|
Workbook_Open() 추천
|
ThisWorkbook에서 Workbook_Open() 사용
|
🔥 엑셀 VBA의 Auto_Open()을 활용하면 파일이 열릴 때 자동으로 원하는 작업을 수행할 수 있습니다! 🚀