엑셀에서 개발 도구(Developer) 탭이 보이도록 설정되어 있어야 합니다.(엑셀 옵션 → 리본 사용자 지정 → “개발 도구” 체크)
파일은 반드시 매크로 사용 통합문서(.xlsm) 로 저장해 주세요.
매크로 실행이 막혀 있다면 보안 경고에서 ‘콘텐츠 사용(Enable Content)’ 을 선택해야 합니다.
개발 도구(Developer) 탭 → 삽입(Insert)
단추(버튼) 선택 후, 시트(원하는 위치)에 버튼을 그립니다.
버튼 이름은 이해를 위해 “자동리프레시버튼” 등으로 변경해 두시면 좋습니다.
키보드에서 Alt + F11 → VBA 편집기 실행
상단 메뉴 Insert(삽입) → Module(모듈) 선택
아래 코드를 모듈 창에 그대로 붙여넣기 합니다.
Sub DoAllSheetRefresh()
Dim cntWorkSheet As Integer ' 워크시트 갯수
Dim idxWorksheet As Integer ' 위크시트 인덱스
Dim objOLE As Object ' 리프래쉬버튼
Dim objSheet As Worksheet '리프래쉬할 위크시트
cntWorkSheet = Application.ActiveWorkbook.Sheets.count ' 워크시트의 갯수를 미리 받음
For idxWorksheet = 1 To cntWorkSheet ' 워크시트를 번갈아가면서 리프래쉬버튼을 순서대로 조사한다
On Error Resume Next ' 에러가 발생하더라도 계속 진행한다.
Set objSheet = Application.ActiveWorkbook.Sheets(idxWorksheet) ' 리프래쉬할 시트를 할당한다
objSheet.Activate '해당시트를 보이게 탭을 이동시킨다.
FollowLinksByScreenTip_Object
Next idxWorksheet
End Sub
Sub FollowLinksByScreenTip_Object()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim count As Long, j As Long
count = ws.Hyperlinks.count
Dim matching() As Hyperlink
Dim n As Long
ReDim matching(1 To count)
For j = 1 To count
Dim hl As Hyperlink
Set hl = ws.Hyperlinks(j)
Dim tip As String
tip = ""
On Error Resume Next
tip = hl.ScreenTip
On Error GoTo 0
If StrComp(tip, "DataGuide6", vbTextCompare) = 0 Then
n = n + 1
Set matching(n) = hl
End If
Next j
Dim i As Long
For i = 1 To n
On Error Resume Next
matching(i).Follow NewWindow:=False, AddHistory:=True
On Error GoTo 0
Next i
End Sub
동작 원리
각 시트를 하나씩 이동하면서, 해당 시트에 있는 하이퍼링크 중 ScreenTip(스크린팁)이 “DataGuide6”인 링크를 찾아 실행(Follow) 합니다.
그 결과, 시트별로 출력된 DataGuide6 데이터가 순차적으로 Refresh 됩니다.
1번에서 만든 자동리프레시버튼을 마우스 우클릭
매크로 지정(Assign Macro) 선택
목록에서 DoAllSheetRefresh 선택 후 확인
각 시트에 SetForm / TimeSeries / Cross Sectional 등으로 필요한 데이터를 출력합니다.
여러 시트에 데이터를 나눠서 출력해 두면, 이후 버튼 한 번으로 전체 리프레시가 가능합니다.
자동리프레시버튼을 한 번 클릭하면→ 통합문서 내 모든 시트를 순회하면서→ DataGuide6 출력 데이터가 자동으로 전체 Refresh 됩니다.
시트 수와 데이터량에 따라 Refresh 시간이 걸릴 수 있습니다. 실행 중에는 버튼을 연속으로 누르지 말아주세요.
어떤 시트에는 DataGuide6 링크(스크린팁 “DataGuide6”)가 없을 수 있습니다. 그 경우 해당 시트는 그냥 건너뛰고 다음 시트로 진행합니다.
파일을 공유/이동하는 경우에도 매크로가 유지되도록 반드시 .xlsm로 저장해 주세요.