
- VBA 教程
- VBA - 首頁
- VBA - 概述
- VBA - Excel 宏
- VBA - Excel術語
- VBA - 宏註釋
- VBA - 訊息框
- VBA - 輸入框
- VBA - 變數
- VBA - 常量
- VBA - 運算子
- VBA - 決策
- VBA - 迴圈
- VBA - 字串
- VBA - 日期和時間
- VBA - 陣列
- VBA - 函式
- VBA - 子過程
- VBA - 事件
- VBA - 錯誤處理
- VBA - Excel 物件
- VBA - 文字檔案
- VBA - 圖表程式設計
- VBA - 使用者窗體
- VBA 有用資源
- VBA - 快速指南
- VBA - 有用資源
- VBA - 討論
VBA - 事件
VBA 是一種事件驅動的程式語言,當您手動更改單元格或單元格區域的值時可以觸發。更改事件可以使事情更容易,但您可能會很快結束一頁的格式設定。事件有兩種。
- 工作表事件
- 工作簿事件
工作表事件
工作表事件在工作表發生更改時觸發。它是透過右鍵單擊工作表標籤並選擇“檢視程式碼”,然後貼上程式碼來建立的。
使用者可以選擇每個工作表,並從下拉選單中選擇“工作表”以獲取所有受支援的工作表事件列表。

以下是使用者可以新增的受支援的工作表事件。
Private Sub Worksheet_Activate() Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Private Sub Worksheet_Calculate() Private Sub Worksheet_Change(ByVal Target As Range) Private Sub Worksheet_Deactivate() Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) Private Sub Worksheet_SelectionChange(ByVal Target As Range)
示例
假設我們只需要在雙擊之前顯示一條訊息。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) MsgBox "Before Double Click" End Sub
輸出
雙擊任何單元格時,將向用戶顯示訊息框,如下面的螢幕截圖所示。

工作簿事件
工作簿事件在整個工作簿發生更改時觸發。我們可以透過選擇“ThisWorkbook”並從下拉選單中選擇“工作簿”來新增工作簿事件的程式碼,如下面的螢幕截圖所示。 “Workbook_open”子過程將立即顯示給使用者,如下面的螢幕截圖所示。

以下是使用者可以新增的受支援的工作簿事件。
Private Sub Workbook_AddinUninstall() Private Sub Workbook_BeforeClose(Cancel As Boolean) Private Sub Workbook_BeforePrint(Cancel As Boolean) Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Private Sub Workbook_Deactivate() Private Sub Workbook_NewSheet(ByVal Sh As Object) Private Sub Workbook_Open() Private Sub Workbook_SheetActivate(ByVal Sh As Object) Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Private Sub Workbook_SheetCalculate(ByVal Sh As Object) Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink) Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Private Sub Workbook_WindowActivate(ByVal Wn As Window) Private Sub Workbook_WindowDeactivate(ByVal Wn As Window) Private Sub Workbook_WindowResize(ByVal Wn As Window)
示例
假設我們只需要在每次建立新工作表時向用戶顯示一條訊息,提示新工作表已成功建立。
Private Sub Workbook_NewSheet(ByVal Sh As Object) MsgBox "New Sheet Created Successfully" End Sub
輸出
建立新的 Excel 工作表時,將向用戶顯示一條訊息,如下面的螢幕截圖所示。

廣告