Event

Auto_Open() 매크로

노만e 2025. 3. 18. 06:33

엑셀 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()을 활용하면 파일이 열릴 때 자동으로 원하는 작업을 수행할 수 있습니다! 🚀