휘발성 함수(TODAY, NOW 등)나 쿼리 연결이 포함된 Excel 파일을 자동으로 새로 고침해야 하는 경우가 자주 있습니다. 그런데 파일을 열지 않은 상태에서 Excel 파일을 자동 새로 고침할 수 있는 유일한 방법은 바로 VBA 매크로입니다. 쿼리 연결(Query Connection)은 닫혀 있는 파일의 자동 새로 고침을 지원하지 않으며, 연결 속성을 통해서는 열려 있는 Excel 파일의 데이터만 일정한 간격으로 새로 고칠 수 있기 때문입니다. 핵심 원리는 다른 .xlsm 형식의 Excel 파일이 매크로를 실행하여 지정된 닫힌 Excel 파일을 백그라운드에서 여닫으며 새로 고치는 것입니다. 이 글에서는 파일을 열지 않고 Excel 파일을 자동 새로 고침하는 두 가지 매크로 활용법을 단계별로 소개합니다.
예제 워크북 다운로드
도우미 역할을 하는 매크로 Excel 파일이 매크로를 실행하여 대상 파일 또는 여러 파일을 자동으로 새로 고칩니다.
Excel 파일을 열지 않고 자동 새로 고침하는 2가지 쉬운 방법
다른 Excel 파일이 매크로를 실행하여 지정된 Excel 파일을 열었다가 닫음으로써 자동 새로 고침을 수행합니다. 예제로 사용하는 "카운트다운(Countdown)" Excel 파일에는 파일을 열 때 값이 업데이트되는 함수들이 포함되어 있습니다.
아래 섹션을 따라 하면 Excel 파일을 직접 열지 않고도 자동으로 새로 고침할 수 있습니다.
방법 1: VBA 매크로를 사용하여 특정 Excel 파일을 열지 않고 자동 새로 고침하기
카운트다운(Countdown) Excel 파일에는 실시간 카운트다운을 계산하는 TODAY()와 NOW() 함수가 들어 있습니다. 목표는 파일을 열지 않고도 이 함수들의 값을 자동으로 새로 고치는 것입니다.

단계: 먼저 다른 Excel 파일에서 Visual Basic 모듈을 삽입합니다(Alt+F11 > 삽입 > 모듈, 또는 개발 도구 탭 > Visual Basic > 삽입 > 모듈). 그런 다음 모듈에 아래 매크로를 붙여넣습니다.
Public Sub AutoRefreshClosedFile()
FilePath = "C:\Users\maruf\Desktop\Softeko\Auto Refresh Excel File Without Opening\Countdown"
With Application
.DisplayAlerts = False
.ScreenUpdating = False
.EnableEvents = False
.AskToUpdateLinks = False
End With
Workbooks.Open FilePath
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
ActiveWorkbook.Close True
With Application
.DisplayAlerts = True
.ScreenUpdating = True
.EnableEvents = True
.AskToUpdateLinks = True
End With
End Sub

매크로 설명
- 자동 새로 고침할 파일의 파일 경로(File Path)를 컴퓨터 환경에 맞게 설정합니다.
- VBA WITH 문은 여러 명령을 한 번에 실행하여 파일이 임의로 변경되지 않도록 제어합니다.
With Application
.DisplayAlerts = False
.ScreenUpdating = False
.EnableEvents = False
.AskToUpdateLinks = False
End With
- Open은 지정된 파일을 엽니다.
- Close는 열었던 파일을 다시 닫습니다.
- 또 다른 VBA WITH 문은 자동 새로 고침 후 파일을 정상 상태로 되돌립니다.
- F5 키를 눌러 매크로를 실행합니다. Excel이 백그라운드에서 Countdown.xlsx 파일을 엽니다. 파일에 TODAY(), NOW() 같은 휘발성 함수가 포함되어 있으므로, 백그라운드에서 열리는 동시에 자동으로 새로 고침됩니다. 파일을 다시 열어 결과를 확인할 수 있습니다.

⧭팁: 반대로 이미 열려 있는 Excel 파일을 주기적으로 자동 새로 고침하고 싶다면 아래 매크로 또는 필요한 명령 줄만 사용하면 됩니다. 이때 매크로 내에서 Application.OnTime을 활용해 계산할 범위(예: A1:D14)와 새로 고침 간격(예: "s", 30 → 30초)은 상황에 맞게 수정하세요.
Sub AutoCalculationRange()
Range("A1:D14").Calculate
Application.OnTime DateAdd("s", 30, Now), "AutoCalculationRange"
End Sub
더 읽어보기: VBA를 사용하여 Excel 시트를 자동으로 새로 고침하는 방법(4가지 방법)
함께 읽으면 좋은 글
- VBA 없이 Excel에서 피벗 테이블 자동 새로 고침하기(3가지 스마트한 방법)
- [해결!] 더블클릭해야만 Excel 셀이 업데이트되는 문제(5가지 해결책)
- Excel에서 차트를 새로 고침하는 방법(2가지 효과적인 방법)
- 원본 데이터가 변경될 때 피벗 테이블 자동 업데이트하는 방법
방법 2: 폴더 안의 모든 Excel 파일 자동 새로 고침하기
방법 1의 확장형 대안으로, 폴더 하나에 들어 있는 모든 Excel 파일을 한 번에 자동 새로 고침할 수 있습니다. 이 매크로를 실행하면 지정된 폴더 안의 Excel 파일들이 차례로 열리며 자동으로 새로 고침됩니다.
단계: 기존 매크로를 아래 코드로 교체합니다.
Public Sub AutoRefreshFolder()
Dim mrf As Object
Dim mfolder As Object
Dim mfile As Object
mPath = "C:\Users\maruf\Desktop\Softeko\Auto Refresh Excel File Without Opening\"
Set mrf = CreateObject("Scripting.FileSystemObject")
Set mfolder = mrf.GetFolder(mPath)
With Application
.DisplayAlerts = False
.ScreenUpdating = False
.EnableEvents = False
.AskToUpdateLinks = False
End With
For Each mfile In mfolder.Files
If Right(mfile.Name, 4) = "xlsx" Or Right(mfile.Name, 3) = "xlsx" Then
Workbooks.Open mPath & mfile.Name
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
ActiveWorkbook.Close True
End If
Next
With Application
.DisplayAlerts = True
.ScreenUpdating = True
.EnableEvents = True
.AskToUpdateLinks = True
End With
End Sub

매크로 설명
- 파일 시스템 처리를 위해 변수를 Object로 선언합니다.
Dim mrf As Object
Dim mfolder As Object
Dim mfile As Object
- mPath에 새로 고침할 대상 폴더 경로를 지정합니다.
- VBA WITH 문은 파일을 임의로 변경하지 않고 여러 명령을 실행합니다.
- VBA FOR와 IF 문은 폴더 안의 각 xlsx 파일을 순회하며 원격으로 열고 닫습니다.
For Each mfile In mfolder.Files
If Right(mfile.Name, 4) = "xlsx" Or Right(mfile.Name, 3) = "xlsx" Then
Workbooks.Open mPath & mfile.Name
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
ActiveWorkbook.Close True
End If
Next
- 마지막으로 매크로가 VBA WITH를 통해 애플리케이션 설정을 복원하며 파일들을 자동으로 새로 고침합니다.
- 실행(Run) > Sub/UserForm 실행(F5)을 클릭하면 폴더 안의 파일들이 자동으로 새로 고침됩니다. 이미 열려 있는 파일은 F9 키를 눌러 활성 워크시트를 즉시 새로 고칠 수 있습니다. 최종적으로 방법 1과 동일한 결과를 얻게 됩니다.
더 읽어보기: VBA 없이 Excel에서 피벗 테이블 자동 새로 고침하기(3가지 스마트한 방법)
결론
이 글에서는 Excel 파일을 열지 않고 자동으로 새로 고침할 수 있는 두 가지 매크로 방식을 살펴보았습니다. 특정 파일 하나만 갱신하려면 방법 1을, 폴더 전체를 한 번에 처리하려면 방법 2를 활용하면 됩니다. 매크로가 xlsx 파일을 백그라운드에서 열고 닫으면서 자동으로 새로 고침해 주기를 바랍니다.
Excel 관련 유용하고 흥미로운 글이 더 필요하다면 저희 웹사이트인 Exceldemy를 방문해 보세요.
관련 글
- [해결]: 저장할 때까지 Excel 수식이 업데이트되지 않는 문제(6가지 해결 방법)
- Excel에서 백그라운드 새로 고침을 비활성화하는 방법(2가지 유용한 방법)
- Excel에서 피벗 테이블을 새로 고침하는 방법(4가지 효과적인 방법)
- Excel에서 VBA로 피벗 테이블 새로 고침하기(5가지 예제)
- Excel에서 5초 간격으로 자동 업데이트 설정하는 방법
- 피벗 테이블이 새로 고침되지 않을 때(5가지 문제와 해결책)
- Excel에서 피벗 테이블 자동 새로 고침하기(2가지 방법)