VBA 실행 시 엑셀이 꺼지는 이유 + 해결 방법 (실제 사례 포함)
엑셀에서 VBA를 실행하다 보면 갑자기 엑셀이 꺼졌다가 다시 켜지거나, 전체 창이 멈추는 현상이 발생하는 경우가 있다.
특히 여러 개의 엑셀 파일을 동시에 열어놓고 자동화 코드를 돌릴 때 이 문제가 자주 발생한다.
나는 VBA를 돌리는 엑셀을 포함해서 4~5개의 엑셀을 동시에 열고 재고 확인 후 자동으로 닫는 VBA를 사용하고 있었는데 이 과정에서 전체 엑셀이 꺼지는 문제가 발생했다.
이 글에서는 실제로 많이 발생하는 원인과 바로 적용 가능한 해결 방법을 정리했다.

1. 이런 증상이 나오면 해당 문제다
아래와 같은 현상이 있다면 동일한 문제다.
- VBA 실행 중 엑셀이 갑자기 종료됨
- 여러 개 엑셀 창이 동시에 꺼졌다가 다시 켜짐
- (Ver1) 같은 이름으로 새 파일이 생성됨
- 실행 도중 멈추거나 반응 없음
👉 이건 단순 오류가 아니라 “Application 충돌”이다
2. 왜 이런 문제가 발생하는가
핵심 원인은 3가지다.
① 여러 엑셀 인스턴스 충돌
엑셀을 여러 개 실행하면 내부적으로 Application 객체가 꼬일 수 있다.
특히 VBA에서 다른 파일을 열고 닫는 작업을 반복하면 충돌 확률이 올라간다.
② 파일 닫기 코드 문제
다음과 같은 코드가 있을 때 문제가 발생한다.
Workbooks("파일명.xlsx").Close
👉 이 코드가 현재 실행 중인 파일까지 닫으려고 하면
엑셀 전체가 같이 종료되는 현상이 발생할 수 있다.
③ 화면 갱신 / 이벤트 중첩
기본 상태에서는 VBA 실행 중에도
화면 갱신과 이벤트가 계속 발생한다.
👉 이게 누적되면 렉 + 튕김 발생
3. 가장 확실한 해결 방법
아래 3개는 무조건 적용하는 게 좋다.
✔ 해결 방법 1: 화면 갱신 끄기
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.EnableEvents = False
👉 실행 전에 반드시 넣는다
✔ 해결 방법 2: 안전한 파일 열기 방식
Dim wb As Workbook
Set wb = Workbooks.Open("파일경로")
👉 직접 이름으로 접근하지 말고 객체로 잡는다
✔ 해결 방법 3: 파일 닫을 때 충돌 방지
wb.Close SaveChanges:=False
Set wb = Nothing
👉 핵심은
“현재 실행 파일(ThisWorkbook)은 절대 건드리지 않는 것”
4. 실제 안정화 코드 예제
아래 코드는 실무에서 가장 안정적으로 쓰는 구조다.
Sub Safe_Run()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.EnableEvents = False
Dim wb As Workbook
Set wb = Workbooks.Open("C:\테스트.xlsx")
' 작업 수행
wb.Sheets(1).Range("A1").Value = "완료"
wb.Close SaveChanges:=True
Set wb = Nothing
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.EnableEvents = True
End Sub
5. 실제 현장 사례
실제로 여러 개의 엑셀을 동시에 열어놓고
재고 데이터를 확인 후 자동으로 닫는 VBA를 사용했을 때
👉 전체 엑셀이 꺼지는 문제가 발생했다
원인은
- 현재 파일까지 닫으려는 코드
- ScreenUpdating 미설정
이 두 가지였다
위 코드로 수정 후
👉 더 이상 튕김 없이 안정적으로 실행됨
6. 추가로 꼭 체크해야 할 것
- 동일 파일을 중복으로 열지 않기
- 경로 오류 방지
- 네트워크 드라이브 사용 시 속도 고려
7. 핵심 요약
- 엑셀 꺼짐 = 대부분 Application 충돌
- ScreenUpdating / Events 설정은 필수
- 파일은 객체로 열고 닫는다
👉 이 3가지만 지켜도 8~90%는 해결된다
마무리
엑셀 VBA는 강력하지만
구조를 잘못 잡으면 불안정해진다.
특히 자동화 작업에서는
“안정성 > 속도”가 훨씬 중요하다.
위 방법을 기준으로 구조를 잡으면
실무에서도 충분히 안정적으로 사용할 수 있다.
