Excel 파일이 처음 열릴 때 특정한 매크로나 VBA가 실행되도록 해두면 편리합니다. 남들보다 빠르게 하루를 시작할 수도 있습니다. Excel 파일이 열릴 때 자동으로 실행되는 몇 가지 VBA 코드에 대해 소개합니다.
Excel 매크로나 VBA를 잘 모르신다고요? 문제없습니다. 아래에서 소개된 코드를 복사/붙여넣기(복/붙) 하세요. 여러분들은 진행되는 순서만 잘 이해하시면 됩니다.
혹시 여유가 되신다면 [VBA 입문 강의]를 보시는 것도 좋겠습니다. 특히 16강 '이벤트와 이벤트 프로시저'를 잽싸게 보고 오세요. 보는 데 5분도 안 걸립니다.
※ 이 글은 아래 기사 내용을 토대로 작성되었습니다만, 제 개인 의견이나 추가 자료들이 다수 포함되어 있습니다. 원문 내용이 궁금하신 분은 URL을 살펴보세요.
- 원문: Excel VBA Code That Make Sense to Run at Startup
- URL: https://turbofuture.com/computers/excel-vba-code-that-make-sense-to-run-at-startup
1. 백업용 통합 문서 만들기
Excel 통합 문서의 백업을 만드는 것은 힘든 작업을 안전하게 저장할 수 있는 좋은 방법입니다. 이러한 작업이 필요한 이유로는 여러 가지가 있습니다(예. 우발적인 변경, 버전 관리, 재해 복구, 공유 및 배포 등).
다음 단계를 통해 이 코드를 사용해 보세요.
- Alt + F11을 눌러서 Visual Basic Editor를 엽니다.
- 왼쪽 창에서 ThisWorkbook(현재 통합 문서)을 선택합니다(더블 클릭).
- 오른쪽 창이 나타나면 다음 VBA 코드를 입력합니다(이벤트 프로시저).
''' 경로와 사용자 이름을 적용할 때 오류가 생길 소지가 있어서 원래 코드 내용을 일부 수정했습니다.
Private Sub Workbook_Open()
CreateBackupCopy
End Sub
Sub CreateBackupCopy()
Dim desktopPath As String
desktopPath = ThisWorkbook.Path & "\"
Dim workbookName As String
workbookName = "myworkbook.xlsx"
Dim backupPath As String
backupPath = desktopPath & workbookName
ThisWorkbook.SaveCopyAs backupPath
End Sub
통합 문서를 닫았다가 열어 보세요. 통합 문서와 같은 폴더에 'myworkbook.xlsx'라는 이름의 복사본 파일이 만들어집니다. 기존 파일을 일일이 복사하지 않아도 자동으로 복사본이 만들어지므로 테스트하거나 개발할 때 편리합니다.
2. 버전 업데이트 안내
엑셀 파일을 여러 명이 공유하고 있다면 스프레드시트를 최신 정보나 논리로 업데이트해야 합니다. 개인용으로 사용하더라도 작업 이력을 관리해야 하는 경우도 있습니다. 이때 매크로를 사용하여 통합 문서가 열릴 때 메시지를 표시할 수 있습니다. 이를 통해 통합 문서 버전과 구현된 관련 업데이트에 대해 사용자에게 알릴 수 있습니다.(예. 사용자에게 변경 사항 알리기, 파일 버전 관리, 중요 업데이트 알림, 중요한 정보 전달 등).
다음 단계를 통해 이 코드를 사용해 보세요.
- Alt + F11을 눌러서 Visual Basic Editor를 엽니다.
- 왼쪽 창에서 ThisWorkbook(현재 통합 문서)을 선택합니다(더블 클릭).
- 오른쪽 창이 나타나면 다음 VBA 코드를 입력합니다(이벤트 프로시저).
Private Sub Workbook_Open()
Dim msg As String
msg = "Welcome to this Excel workbook!" & vbCrLf & vbCrLf & _
"Version 1.0" & vbCrLf & _
"- Added new data entry forms." & vbCrLf & _
"- Improved performance."
MsgBox msg, vbInformation, "Version 1.0 Update"
End Sub
코드에서 vbCrLf는 행을 바꾸기 위한 용도로 사용합니다. vbNewLine이라고 해도 됩니다. 이 코드가 포함된 통합 문서를 열면 다음과 같은 메시지 상자가 나타납니다. 표시되는 텍스트는 자신의 업무에 맞는 것으로 바꾸세요.
3. 타임 스탬프 생성
특정한 시간을 워크시트에 표시하면 문서 작업 기간을 이해하거나 해당 시간을 참조할 수 있습니다. Excel 통합 문서를 열 때 타임스탬프를 생성하면 다양한 용도로 사용될 수 있습니다(예. 문서화 및 기록 보관, 업데이트 전달, 데이터 최신성 보장, 품질 관리 등).
다음 단계를 통해 이 코드를 사용해 보세요.
- Alt + F11을 눌러서 Visual Basic Editor를 엽니다.
- 왼쪽 창에서 ThisWorkbook(현재 통합 문서)을 선택합니다(더블 클릭).
- 오른쪽 창이 나타나면 다음 VBA 코드를 입력합니다(이벤트 프로시저).
Private Sub Workbook_Open()
Worksheets("Sheet1").Range("A1").Value = "최종 수정: " & Now()
End Sub
지정한 곳에 타임 스탬프가 표시됩니다. "Sheet1"과 "A1"을 바꾸면 타임스탬프가 인쇄되는 시트와 범위를 변경할 수 있습니다.
4. 수동 계산
수식이 많이 사용된 대용량 파일인 경우 적절한 때가 될 때까지 파일 내의 수식을 계산하고 싶지 않을 수도 있습니다. 자동 계산 기능을 끄면 파일 속도가 느려지는 것을 걱정할 필요가 없습니다(예. 과도한 재계산 방지, 자원 사용량 줄이기, 사용자 경험 개 등).
다음 단계를 통해 이 코드를 사용해 보세요.
- Alt + F11을 눌러서 Visual Basic Editor를 엽니다.
- 왼쪽 창에서 ThisWorkbook(현재 통합 문서)을 선택합니다(더블 클릭).
- 오른쪽 창이 나타나면 다음 VBA 코드를 입력합니다(이벤트 프로시저).
Private Sub Workbook_Open()
Application.Calculation = xlCalculationManual
End Sub
[주의] 이 기능을 사용할 때에는 주의가 필요합니다. 통합 문서가 자동 계산 되지 않으면 다른 작성자와 혼동을 일으킬 수 있을 뿐만 아니라 자기 자신도 혼란을 겪을 수 있으므로 불가피한 경우에만 사용하는 것이 좋습니다. [수식] 탭 - [계산] 그룹 - [계산 옵션]을 클릭하여 원래 상태로 되돌릴 수 있습니다.
5. 툴바 숨기기
Excel 파일을 편집할 필요가 없는 경우 파일을 열 때 도구 모음을 숨겨서 작업 공간을 넓게 표시할 수 있습니다(예. 특정 작업에 집중, 맞춤형 사용자 인터페이스, 프레젠테이션, 워크시트 영역 최대화 등).
다음 단계를 통해 이 코드를 사용해 보세요.
- Alt + F11을 눌러서 Visual Basic Editor를 엽니다.
- 왼쪽 창에서 ThisWorkbook(현재 통합 문서)을 선택합니다(더블 클릭).
- 오른쪽 창이 나타나면 다음 VBA 코드를 입력합니다(이벤트 프로시저).
Private Sub Workbook_Open()
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
End Sub
코드를 실행하면 리본이 사라지고 아래와 같이 워크시트 작업 공간만 표시됩니다.
원래 상태로 되돌리려면 다음 코드를 실행합니다. Visual Basic Editor에서 [직접 실행 창]을 표시하고 코드를 복/붙 한 다음 Enter를 누르면 됩니다.
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
6. 특정한 Word 및 Excel 파일 열기
여러 파일을 사용해야 할 때, 하나의 파일이 열릴 때 특정 파일을 함께 열리도록 하면 프로세스를 간소화하는 데 도움이 될 수 있습니다(예. 간소화된 작업흐름, 즉각적인 접근, 향상된 생산성, 관리 작업 감 등).
다음 단계를 통해 이 코드를 사용해 보세요.
- Alt + F11을 눌러서 Visual Basic Editor를 엽니다.
- 왼쪽 창에서 ThisWorkbook(현재 통합 문서)을 선택합니다(더블 클릭).
- 오른쪽 창이 나타나면 다음 VBA 코드를 입력합니다(이벤트 프로시저).
''' 경로와 사용자 이름을 적용할 때 오류가 생길 소지가 있어서 원래 코드 내용을 일부 수정했습니다.
''' 열려는 Word와 Excel 파일이 같은 폴더에 있어야 제대로 작동합니다.
Private Sub Workbook_Open()
Dim wordFilePath As String
Dim excelFilePath As String
wordFilePath = ThisWorkbook.Path & "\Test.docx"
excelFilePath = ThisWorkbook.Path & "Test.xlsx"
Call OpenWordFile(wordFilePath)
Call OpenExcelFile(excelFilePath)
End Sub
Sub OpenWordFile(filePath As String)
Dim wordApp As Object
Set wordApp = CreateObject("Word.Application")
wordApp.Visible = True
wordApp.Documents.Open filePath
End Sub
Sub OpenExcelFile(filePath As String)
Dim excelApp As Object
Set excelApp = CreateObject("Excel.Application")
excelApp.Visible = True
excelApp.Workbooks.Open filePath
End Sub
특정한 엑셀 파일을 여는 경우라면 Open 문을 이용하여 한 줄이면 됩니다.
Workbooks.Open ThisWorkbook.Path & "\Test.xlsx"
7. 통합 문서 암호로 보호하기
통합 문서를 암호로 보호하면 민감한 Excel 파일에 대한 보안을 강화할 수 있습니다 (예. 기밀 유지, 무단 변경 방지, 통제된 접근, 개인정보 보호, 우발적인 변경 방 등).
다음 단계를 통해 이 코드를 사용해 보세요.
- Alt + F11을 눌러서 Visual Basic Editor를 엽니다.
- 왼쪽 창에서 ThisWorkbook(현재 통합 문서)을 선택합니다(더블 클릭).
- 오른쪽 창이 나타나면 다음 VBA 코드를 입력합니다(이벤트 프로시저).
Private Sub Workbook_Open()
Dim password As String
password = "1234"
ThisWorkbook.Protect password:=password, structure:=True, Windows:=False
End Sub
이 코드를 실행하면 워크시트에 내용을 입력하거나 수정할 수는 있지만 통합 문서의 구조(예. 시트를 삽입하거나 삭제)는 수정할 수 없게 됩니다. 원래 상태로 돌아가려면 다음 코드를 사용합니다.
Private Sub Workbook_Open()
Dim password As String
password = "1234"
ThisWorkbook.Unprotect password:=password
End Sub
'VBA' 카테고리의 다른 글
엑셀 하이퍼링크를 여는 VBA 코드 (0) | 2023.10.24 |
---|---|
Excel 종료 시 실행되게 하는 VBA 코드 5가지 (4) | 2023.10.21 |
[VBA 입문] 18강. 에필로그 (99) | 2023.10.12 |
[VBA 입문] 17강. 챗GPT로 VBA 코딩하는 법 (92) | 2023.10.11 |
[VBA 입문] 16강. 이벤트와 이벤트 프로시저 (2) | 2023.10.10 |