Excel VBA 예: 소개 이벤트 예

Excel VBA를 잘 이해 하려는 경우 몇 가지 예제를 통해 시각적 기본 능력을 개발하는 데 도움이 될 수 있습니다. 여기에서 이 이벤트 처리 비즈니스를 익힐 수 있도록 몇 가지 Excel VBA 예제를 찾을 수 있습니다.

Excel VBA 예제: 통합 문서에 대한 열기 이벤트

가장 일반적으로 사용되는 Excel VBA 이벤트 중 하나는 통합 문서 열기 이벤트입니다. 매일 사용하는 통합 문서가 있다고 가정합니다. 이 예제의 Workbook_Open 프로시저는 통합 문서가 열릴 때마다 실행됩니다. 절차는 요일을 확인합니다. 금요일이면 코드에서 미리 알림 메시지를 표시합니다.

통합 문서 열기 이벤트가 발생할 때마다 실행되는 Excel VBA 프로시저를 만들려면 다음 단계를 수행하십시오.

Excel 통합 문서를 엽니다.
모든 Excel 통합 문서가 가능합니다.

Alt+F11을 눌러 VBE를 활성화합니다.

프로젝트 창에서 통합 문서를 찾습니다.

필요한 경우 프로젝트 이름을 두 번 클릭하여 해당 항목을 표시합니다.

ThisWorkbook 항목을 두 번 클릭합니다.
VBE는 ThisWorkbook 개체에 대한 빈 코드 창을 표시합니다.

코드 창의 개체(왼쪽) 드롭다운 목록에서 통합 문서를 선택합니다.
VBE는 Workbook_Open 프로시저에 대한 시작 및 끝 문을 입력합니다.

전체 이벤트 절차가 다음과 같도록 다음 명령문을 입력합니다.

비공개 하위 통합 문서_Open()
  문자열로 희미한 메시지
  평일(지금) = 6이면
    Msg = "오늘은 금요일입니다. 잊지 마세요"
    Msg = Msg & "TPS 보고서 제출!"
    메시지박스 메시지
  종료
엔드 서브

코드 창은 다음과 같아야 합니다.

Excel VBA 예: 소개 이벤트 예

이 이벤트 처리기 프로시저는 통합 문서가 열릴 때 실행됩니다.

Workbook_Open은 통합 문서가 열릴 때마다 자동으로 실행됩니다. VBA의 WeekDay 함수를 사용하여 요일을 결정합니다. 금요일(6일째)이면 보고서를 제출하라는 메시지 상자가 표시됩니다. 금요일이 아니면 아무 일도 일어나지 않습니다.

오늘이 금요일이 아니면 이 절차를 테스트하는 데 어려움을 겪을 수 있습니다. 오늘의 실제 날짜 숫자에 해당하도록 6을 변경할 수 있습니다.

물론 이 절차를 원하는 대로 수정할 수 있습니다. 예를 들어 다음 버전은 통합 문서를 열 때마다 메시지를 표시합니다. 이것은 잠시 후 짜증이납니다.

Workbook_Open 프로시저는 거의 모든 작업을 수행할 수 있습니다. 이러한 이벤트 처리기는 다음과 같은 경우에 자주 사용됩니다.

  • 환영 메시지 표시(예: Frank의 멋진 통합 문서)
  • 다른 통합 문서 열기
  • 통합 문서에서 특정 워크시트 활성화
  • 사용자 정의 바로 가기 메뉴 설정

다음은 통합 문서가 열린 횟수를 추적하기 위해 GetSetting 및 SaveSetting 함수를 사용하는 Workbook_Open 프로시저의 최종 Excel VBA 예제입니다. SaveSetting 함수는 Windows 레지스트리에 값을 기록하고 GetSetting 함수는 해당 값을 검색합니다(자세한 내용은 도움말 시스템 참조). 다음Excel VBA 예제에서는 레지스트리에서 카운트를 검색하고 증분한 다음 레지스트리에 다시 저장합니다. 또한 통합 문서를 연 횟수에 해당하는 Cnt 값을 사용자에게 알려줍니다.

비공개 하위 통합 문서_Open()
  길이만큼 희미한 Cnt
  Cnt = GetSetting("MyApp", "설정", "열기", 0)
  Cnt = Cnt + 1
  SaveSetting "MyApp", "Settings", "Open", Cnt
  MsgBox "이 통합 문서는 " & Cnt & " 번 열렸습니다."
엔드 서브

Excel VBA 예: 소개 이벤트 예

Workbook_Open 이벤트 처리기를 사용하여 통합 문서가 열린 횟수를 추적합니다.

Excel VBA 예제: 통합 문서에 대한 BeforeClose 이벤트

다음은 통합 문서가 닫히기 직전에 자동으로 실행되는 Excel VBA Workbook_BeforeClose 이벤트 처리기 프로시저의 예입니다. 이 절차는 ThisWorkbook 개체의 코드 창에 있습니다.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  문자열로 희미한 메시지
  Dim Ans As Long
  문자열로 희미한 FName
  Msg = "이 파일을 백업하시겠습니까?"
  답변 = MsgBox(메시지, vbYesNo)
  Ans = vbYes이면
    FName = "F:\BACKUP\" & ThisWorkbook.Name
    ThisWorkbook.SaveCopyAs FName
  종료
엔드 서브

이 루틴은 메시지 상자를 사용하여 통합 문서의 백업 복사본을 만들 것인지 여부를 사용자에게 묻습니다. 대답이 예인 경우 코드는 SaveCopyAs 메서드를 사용하여 F 드라이브에 파일의 백업 복사본을 저장합니다. 이 절차를 자신의 용도에 맞게 조정하는 경우 드라이브와 경로를 변경해야 합니다.

Excel 프로그래머는 종종 Workbook_BeforeClose 프로시저를 사용하여 스스로 정리합니다. 예를 들어 Workbook_Open 프로시저를 사용하여 통합 문서를 열 때 일부 설정을 변경하는 경우(예: 상태 표시줄 숨기기) 통합 문서를 닫을 때 설정을 원래 상태로 되돌리는 것이 적절합니다. Workbook_BeforeClose 프로시저를 사용하여 이 전자 하우스키핑을 수행할 수 있습니다.

Workbook_BeforeClose 이벤트를 사용할 때 다음 사항을 염두에 두십시오. Excel을 닫고 열려 있는 파일이 마지막 저장 이후 변경된 경우 Excel은 일반적인 "변경 사항을 저장하시겠습니까?" 메시지 상자를 표시합니다. 취소 버튼을 클릭하면 전체 닫기 프로세스가 취소됩니다. 그러나 Workbook_BeforeClose 이벤트는 어쨌든 실행됩니다.

Excel VBA 예제: 통합 문서에 대한 BeforeSave 이벤트

BeforeSave 이벤트는 이름에서 알 수 있듯이 통합 문서가 저장되기 전에 트리거됩니다. 이 이벤트는 파일 → 저장 또는 파일 → 다른 이름으로 저장을 선택할 때 발생합니다.

ThisWorkbook 개체 의 코드 창 에 있는 다음 절차에서는 BeforeSave 이벤트를 보여 줍니다. 루틴은 통합 문서가 저장될 때마다 셀(Sheet1의 A1 셀)에 있는 값을 업데이트합니다. 즉, A1 셀은 파일이 저장된 횟수를 추적하는 카운터 역할을 합니다.

비공개 하위 통합 문서_BeforeSave(ByVal SaveAsUI _
  부울로, 부울로 취소)
  범위로 희미한 카운터
  카운터 설정 = Sheets("Sheet1").Range("A1")
  카운터.값 = 카운터.값 + 1
엔드 서브

Workbook_BeforeSave 프로시저에는 SaveAsUI 및 Cancel의 두 인수가 있습니다. 이러한 인수가 작동하는 방식을 보여 주려면 통합 문서를 저장하기 전에 실행되는 다음 매크로를 검사하십시오. 이 절차에서는 사용자가 통합 문서를 다른 이름으로 저장하지 못하도록 합니다. 사용자가 파일 → 다른 이름으로 저장을 선택하면 SaveAsUI 인수는 True입니다.

코드가 실행되면 SaveAsUI 값을 확인합니다. 이 변수가 True이면 프로시저는 메시지를 표시하고 취소를 True로 설정하여 저장 작업을 취소합니다.

비공개 하위 통합 문서_BeforeSave(ByVal SaveAsUI _
  부울로, 부울로 취소)
  SaveAsUI인 경우
    MsgBox "이 통합 문서의 복사본을 저장할 수 없습니다!"
  취소 = 참
  종료
엔드 서브

이 절차는 다른 사람이 복사본을 다른 이름으로 저장하는 것을 실제로 방지하지 않습니다. 누군가 정말로 하고 싶다면 매크로가 비활성화된 상태로 통합 문서를 열면 됩니다. 매크로가 비활성화되면 이벤트 처리기 프로시저도 비활성화됩니다. 이는 결국 매크로이기 때문에 의미가 있습니다.

Leave a Comment

Excel에서 산점도를 만드는 방법

Excel에서 산점도를 만드는 방법

Excel에서 회귀 분석을 통해 데이터 간의 관계를 탐색하고 시각적으로 분석하는 방법을 알아보세요. 다양한 단계를 따라 쉽게 산점도를 만들 수 있습니다.

Microsoft 365 Business: Azure Information Protection을 구성하는 방법

Microsoft 365 Business: Azure Information Protection을 구성하는 방법

이 가이드를 사용하여 LuckyTemplates.com에서 Azure Information Protection을 효과적으로 구성하는 방법을 알아보세요.

SharePoint를 Power BI와 통합하는 방법

SharePoint를 Power BI와 통합하는 방법

SharePoint와 Power BI 통합 방법 및 LuckyTemplates.com에서 보고서를 SharePoint 사이트에 연결하는 다양한 방법에 대해 알아보세요.

PowerPoint 슬라이드에서 펜 및 형광펜 그림 지우기

PowerPoint 슬라이드에서 펜 및 형광펜 그림 지우기

프레젠테이션 중 펜 혹은 형광펜을 사용하여 PowerPoint 슬라이드에 그린 경우, 사용자가 다음 프레젠테이션을 위해 그림을 저장하거나 쉽게 지울 수 있도록 하는 방법을 알립니다.

스마트시트 9.1.1

스마트시트 9.1.1

Smartsheet는 프로젝트를 관리하고, 워크플로를 구축하고, 팀과 협업할 수 있는 동적 작업 플랫폼입니다.

공유 지점

공유 지점

SharePoint는 다양한 워크플로 응용 프로그램, "목록" 데이터베이스 및 기타 웹 구성 요소는 물론 보안 기능을 사용하여 비즈니스 그룹의 공동 작업을 제어하는 ​​웹 기반 공동 작업 시스템입니다.

퍼페추얼 캘린더 1.0.38/1.0.36

퍼페추얼 캘린더 1.0.38/1.0.36

반니엔 캘린더(Van Nien Calendar)는 휴대폰에서 달력 보기 애플리케이션으로, 휴대폰에서 태음태양일을 빠르게 확인하고 중요한 업무를 정리할 수 있도록 도와줍니다.

마이크로소프트 아웃룩 2021

마이크로소프트 아웃룩 2021

Microsoft Outlook은 Microsoft Corporation에서 개발한 비즈니스 및 생산성 응용 프로그램입니다.

클릭업

클릭업

ClickUp은 모든 비즈니스에서 가장 높은 평가를 받는 생산성 플랫폼 중 하나입니다. Google, Booking.com, San Diego Padres 및 Uber와 같은 대기업은 모두 ClickUp을 사용하여 직장 생산성을 높입니다.

PDF-XChange 뷰어 2.5.322.10

PDF-XChange 뷰어 2.5.322.10

PDF는 텍스트 문서를 읽고, 만들고, 보내는 데 일반적으로 사용되는 형식이 되었습니다. 결과적으로 이러한 유형의 문서화에 사용되는 프로그램 수가 증가했습니다. PDF-XChange Viewer는 점점 더 많은 PDF 뷰어 중 하나입니다.