Sự kiện của các đối tượng trong Excel

Một phần của tài liệu Tài liệu Ứng dụng VBA sử dụng trong ngành giao thông - P2 docx (Trang 36 - 37)

Khi người dùng thực hiện một thao tác nào đó trong chương trình, Excel sẽ làm sinh một sự kiện tương ứng với các thao tác đó, chẳng hạn như các sự kiện khi mở hoặc lưu workbook. Nhờ có các sự kiện mà người lập trình có thể viết mã lệnh để thực hiện một số thao tác mỗi khi sự kiện đó xảy ra (còn gọi là bộ xử lý sự kiện – event handler). Những hộp thông báo như “Would you like to save changes?” là minh hoạ rõ nhất việc sử dụng các sự kiện trong Excel.

Thực chất, mỗi bộ xử lý sự kiện là một chương trình con dạng thủ tục. Khi sự kiện xảy ra, chương trình con tương ứng sẽ được tự động thực thi. Excel có khả năng giám sát nhiều loại sự kiện khác nhau. Các sự kiện có thể được phân loại như sau:

Ø

ØSự kiện của Workbook (sự kiện mức Workbook): các sự kiện xảy ra trong một workbook nào đó. Chẳng hạn như các sự kiện Open (khi mở hoặc tạo workbook), BeforeSave (trước khi lưu workbook), NewSheet (một sheet mới vừa được thêm),…

Ø

ØSự kiện của Worksheet (sự kiện mức Worksheet): các sự kiện xảy ra trong một worksheet nào đó. Ví dụ như các sự kiện Change (khi một ô trong sheet bị thay đổi), SelectionChange (người dùng chuyển sang vùng được chọn khác), Calculate (khi một worksheet được tính toán lại),…

Ø

ØSự kiện của đối tượng Chart: các sự kiện xảy ra trên một đối tượng chart nào đó. Chẳng hạn như các sự kiện Select (khi một đối tượng Chart được chọn), sự kiện SeriesChange (khi có một giá trị nào đó trong chuỗi số liệu bị thay đổi). Để giám sát các sự kiện của đối tượng chart nhúng, cần phải thực hiện thêm một số kỹ thuật khác.

Ø

ØSự kiện của ứng dụng Excel (sự kiện mức ứng dụng): các sự kiện xảy ra bên trong chương trình Excel. Các sự kiện này bao gồm NewWorkbook (khi một workbook mới được tạo), WorkbookBeforeClose (trước khi đóng một workbook nào đó), SheetChange (khi một ô nào đó trong workbook bị thay đổi). Để giám sát các sự kiện của ứng dụng Excel, người lập trình cần phải thực hiện thêm một số kỹ thuật nâng cao khác.

Ø

ØCác sự kiện trong UserForm: là các sự kiện xảy ra trong UserForm hoặc trong một đối tượng nằm trên UserForm. Ví dụ như UserForm có sự kiện Initialize (xảy ra trước khi UserForm được hiển thị), hoặc đối tượng CommandButton trên UserForm có sự kiện Click (xảy ra khi người dùng kích chuột vào nút lệnh).

Ø

ØCác sự kiện không gắn với đối tượng: nhóm sự kiện này có hai sự kiện rất hữu dụng: sự kiện OnTime và sự kiện OnKey. Những sự kiện này có cách thức hoạt động không giống như những sự kiện khác.

Có một số thao tác trong Excel có thể làm xảy ra nhiều sự kiện khác nhau. Ví dụ như khi người dùng chèn một worksheet mới vào trong workbook sẽ làm phát sinh các sự kiện ở mức ứng dụng như sau:

Ø

ØSự kiện WorkbookNewSheet: xảy ra khi tạo mới worksheet.

Ø

ØSự kiện SheetDeactivate: xảy ra khi worksheet hiện hành không còn hiện hành nữa.

Ø

ØSự kiện SheetActivate: xảy ra khi worksheet vừa mới được tạo được chuyển thành worksheet hiện hành.

6.1. Tạo bộ xử lý sự kiện cho một sự kiện

Những người mới lập trình VBA thường không biết nơi nào để tạo bộ xử lý sự kiện, hoặc bộ xử lý sự kiện được tạo ra nhưng lại không hoạt động được. Nguyên nhân là do chương trình con chứa các bộ xử lý sự kiện không được đặt đúng vị trí.

Để có thể hoạt động đúng như mong muốn, các bộ xử lý sự kiện của từng đối tượng phải được đặt trong mô-đun mã lệnh tương ứng của đối tượng đó.

Ví dụ sau sẽ minh hoạ cách tạo bộ xử lý sự kiện cho sự kiện Worksheet_Change của Sheet 1 (là sự kiện phát sinh khi người dùng thay đổi giá trị của một ô nào đó trong Sheet 1).

Tạo bộ xử lý sự kiện 

Một phần của tài liệu Tài liệu Ứng dụng VBA sử dụng trong ngành giao thông - P2 docx (Trang 36 - 37)