Excel에서 외부 데이터를 다루다 보면 쿼리 작업이 제대로 완료될 수 있도록 백그라운드 새로 고침을 비활성화해야 하는 경우가 종종 있습니다. 백그라운드 새로 고침을 끄면 쿼리가 피벗 테이블보다 먼저 새로 고쳐지기 때문에 오류를 예방할 수 있으며, 웹페이지 등 외부 소스에 연결된 데이터를 다룰 때 발생하는 문제도 피할 수 있습니다.
Excel에서 백그라운드 새로 고침을 비활성화하는 2가지 효과적인 방법
예를 들어 웹페이지에 연결된 데이터 파일이 있다고 가정해 보겠습니다. 데이터를 일부 수정했는데 잠시 후 데이터가 자동으로 새로 고쳐져 원래 값으로 되돌아간 경험이 있으실 겁니다. 이럴 때 해당 Excel 파일의 백그라운드 새로 고침을 비활성화해야 합니다. 이 글에서는 누구나 따라 할 수 있는 2가지 방법을 소개합니다. 여기서는 다른 통화의 유로(EURO) 환율 데이터를 담은 파일을 예로 들며, 이 데이터는 실시간 환율 정보를 제공하는 웹페이지와 연결되어 있습니다.

1. 쿼리 속성(Query Properties)에서 비활성화하기
백그라운드 새로 고침을 비활성화하려면 쿼리 속성(Query Properties)을 활용하는 것이 가장 간단합니다. 아래 단계를 따라 해보세요.
단계:
- 먼저 연결된 데이터가 있는 셀 중 하나를 클릭합니다.
- 상단 리본 메뉴에서 데이터(Data) 탭으로 이동합니다.
- 모두 새로 고침(Refresh All) 드롭다운 메뉴를 클릭하고 연결 속성(Connection Properties)을 선택합니다.

- 그러면 "쿼리 속성(Query Properties)"이라는 새 창이 나타납니다.
- 여기서 "백그라운드 새로 고침 사용(Enable Background Refresh)" 옵션의 체크를 해제합니다.

- 이제 백그라운드 새로 고침이 비활성화되어 데이터가 더 이상 자동으로 업데이트되지 않습니다. 다시 새로 고치려면 모두 새로 고침(Refresh All) 옵션을 직접 클릭해야 합니다.
함께 읽으면 좋은 글: 피벗 테이블이 새로 고쳐지지 않을 때 (5가지 문제와 해결책)
관련 자료
- VBA로 모든 피벗 테이블 새로 고치는 방법 (4가지 방법)
- Excel에서 피벗 테이블 자동 새로 고침 설정 방법 (2가지 방법)
- Excel에서 모든 피벗 테이블 새로 고치는 방법 (3가지 방법)
2. VBA 코드를 적용하여 비활성화하기
VBA 코드를 사용해서도 백그라운드 새로 고침을 비활성화할 수 있습니다. 아래에 코드와 실행 절차를 정리했으니 그대로 복사해서 붙여넣고 실행해 보세요.
단계:
- 먼저 상단 리본 메뉴에서 개발 도구(Developer) 탭으로 이동합니다.
- Visual Basic 옵션을 선택합니다.

- Visual Basic 창이 열립니다.
- 삽입(Insert) > 모듈(Module)을 선택해 새 모듈을 엽니다.

- 새 모듈이 열리면 아래 코드를 창에 붙여넣습니다.
Sub Disable_Background_Refresh()
Dim dbr As Long
With ActiveWorkbook
For dbr = 1 To .Connections.Count
If .Connections(dbr).Type = xlConnectionTypeOLEDB Then
.Connections(dbr).OLEDBConnection.BackgroundQuery = False
End If
Next dbr
End With
End Sub

- 실행(Run) 버튼을 누릅니다.
- "Disable_Background_Refresh" 매크로를 선택하고 확인을 누릅니다.

- 그러면 백그라운드 새로 고침이 비활성화된 것을 확인할 수 있습니다.
- 매크로 코드를 버튼에 할당하면 클릭 한 번으로 실행할 수도 있습니다.
- 이를 위해 삽입(Insert) 탭에서 단추(Button) 옵션을 선택합니다.

- 워크시트에서 버튼을 배치할 영역을 드래그하여 선택합니다.
- 영역을 선택하면 "매크로 지정(Assign Macro)" 창이 나타납니다.
- 여기서 앞서 만든 매크로를 선택하고 확인(OK)을 누릅니다.

- 버튼이 생성되면 이름을 "백그라운드 새로 고침 비활성화"로 변경합니다.
- 이제 이 버튼을 클릭할 때마다 백그라운드 새로 고침 옵션이 해제됩니다.

VBA 코드 설명:
Sub Disable_Background_Refresh()
- 매크로 이름을 Disable_Background_Refresh로 설정합니다.
Dim dbr As Long
- 큰 범위의 숫자 값을 저장할 변수를 선언합니다.
With ActiveWorkbook
For dbr = 1 To .Connections.Count
If .Connections(dbr).Type = xlConnectionTypeOLEDB Then
.Connections(dbr).OLEDBConnection.BackgroundQuery = False
- 이 코드는 통합 문서의 모든 연결을 순회하며 조건에 맞는 연결만 처리합니다.
- 값을 True로 설정하면 백그라운드 새로 고침이 활성화되고, False로 설정하면 비활성화됩니다.
함께 읽으면 좋은 글: VBA로 Excel 피벗 테이블 새로 고치기 (5가지 예제)
알아두어야 할 사항
- 백그라운드 새로 고침을 비활성화하면 데이터가 더 이상 자동으로 업데이트되지 않습니다.
- 데이터를 업데이트하려면 "모두 새로 고침" 옵션을 직접 클릭해야 합니다.
- 매크로를 버튼에 할당해 두면 반복 작업을 여러 번 빠르게 실행할 수 있어 매우 편리합니다.
마무리
이번 글에서는 Excel에서 백그라운드 새로 고침을 비활성화하는 2가지 쉬운 방법을 살펴봤습니다. 쿼리 속성을 활용하는 방법과 VBA 매크로를 활용하는 방법 모두 몇 분 안에 적용할 수 있으니, 연습용 통합 문서를 내려받아 직접 따라 해보세요. 이 글이 도움이 되었기를 바랍니다. 더 많은 Excel 관련 팁이 궁금하시면 저희 웹사이트 Exceldemy를 방문해 주세요. 의견이나 질문이 있다면 아래 댓글로 남겨주세요.
관련 글
- Excel 시트 자동 새로 고침 방법 (3가지 방법)
- [해결됨]: 저장 전까지 Excel 수식이 업데이트되지 않는 문제 (6가지 해결책)
- VBA 없이 Excel에서 피벗 테이블 자동 새로 고침하기 (3가지 스마트한 방법)
- [수정됨!] 더블클릭해야 Excel 셀이 업데이트되는 문제 (5가지 해결책)
- Excel에서 차트 새로 고침하는 방법 (2가지 효과적인 방법)
- 원본 데이터가 변경될 때 피벗 테이블 자동 업데이트하는 방법