« Home « Kết quả tìm kiếm

Tự động hóa trong thiết kế cầu đường part 6


Tóm tắt Xem thử

- Sự kiện của các đối tượng trong Excel.
- 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?” khi ta đóng bảng tính mà chưa lưu dữ liệu 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)..
- Ø Ø 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)..
- 139 Ø Ø Các sự kiện trong UserForm: là các sự kiện xảy ra trong UserForm hoặc trong một đối.
- 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..
- 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 .
- Chương trình con dạng thủ tục trên chính là bộ xử lý sự kiện cho sự kiện Change của đối tượng Sheet1 .
- Người lập trình có thể viết mã lệnh để thực hiện các thao tác cần thiết mỗi khi sự kiện xảy ra.
- Mỗi bộ xử lý sự kiện đều có các tham số riêng.
- Ý nghĩa và số lượng các tham số phụ thuộc vào từng loại sự kiện.
- CHÚ Ý Excel còn cho phép người dùng tắt các sự kiện trong ứng dụng, khi đó, các bộ xử lý sự kiện sẽ không được thực thi mỗi khi người dùng thực hiện các thao tác tương ứng nữa.
- Sự kiện trong Workbook.
- Các sự kiện mức workbook xảy ra trong một workbook nào đó.
- Các bộ xử lý sự kiện của đối tượng workbook được lưu trong mô-đun mã lệnh của workbook tương ứng.
- Dưới đây là danh sách các sự kiện trong workbook:.
- Sự kiện Thao tác làm phát sinh sự kiện.
- Sự kiện này xảy ra ngay trước khi kích đúp..
- Sự kiện Open .
- Một trong những sự kiện phổ biến nhất trong Workbook chính là sự kiện Open.
- Sự kiện này được kích hoạt mỗi khi workbook (hoặc add-in) được mở, và sẽ kích hoạt bộ xử lý sự kiện tương ứng có tên là Workbook_Open.
- Khuôn mẫu của bộ xử lý sự kiện Open như sau:.
- Sự kiện BeforeClose .
- Sự kiện BeforeClose xảy ra trước khi một workbook chuẩn bị đóng.
- Sự kiện này thường được dùng kết hợp với sự kiện Open.
- Lấy ví dụ như, có thể sử dụng sự kiện Open để tạo trình đơn tuỳ biến cho workbook, sau đó sử dụng sự kiện BeforeClose để xoá trình đơn đó trước khi workbook được đóng.
- Khuôn mẫu của bộ xử lý sự kiện BeforeClose như sau:.
- Cancel Mặc định, tham số này bằng FALSE khi xảy ra sự kiện.
- Nếu trong bộ xử lý sự kiện có gán giá trị cho tham số Cancel=TRUE thì Excel sẽ dừng quá trình đóng workbook lại, workbook sẽ vẫn còn được mở trong Excel..
- Ví dụ sau sẽ minh hoạ cách thao tác với sự kiện BeforeClose.
- Ví dụ này sẽ kiểm tra xem khi sự kiện BeforeClose xảy ra, workbook đã được lưu hay chưa.
- Sự kiện trong Worksheet.
- Sự kiện ở mức worksheet xảy ra bên trong một worksheet nào đó.
- Việc xử lý tốt các sự kiện ở mức worksheet sẽ giúp ứng dụng mở rộng hoạt động hiệu quả và chuyên nghiệp hơn.
- Dưới đây là một số sự kiện trong worksheet:.
- Cần phải lưu ý là mã lệnh của các bộ xử lý sự kiện của worksheet phải được đặt trong mô-đun mã lệnh của worksheet tương ứng..
- Sự kiện Change .
- Sự kiện Change xảy ra khi có một ô nào đó trong worksheet bị thay đổi.
- Sự kiện này sẽ không xảy ra khi quá trình tự động tính toán của Excel làm thay đổi giá trị của ô, hoặc khi chèn một đối tượng vào trong worksheet..
- Khuôn mẫu của bộ xử lý sự kiện Change như sau:.
- Đối tượng này có thể là một ô hoặc một vùng dữ liệu đã bị thay đổi.
- Để có thể hiểu rõ hơn các loại thao tác làm phát sinh sự kiện Change của workshet, nhập đoạn mã trên vào trong mô-đun mã lệnh của worksheet.
- Mỗi khi sự kiện Change xảy ra, một hộp thông báo sẽ được hiện lên thông báo địa chỉ của vùng dữ liệu đã bị tác động.
- Khi thực hiện theo cách như vậy, ta có thể tình cờ phát hiện ra nhiều điều thú vị về sự kiện này.
- Ø Ø Thay đổi định dạng của ô không làm phát sinh sự kiện Change như mong đợi, nhưng nếu sử dụng trình đơn Edit Ö Clear Ö Formats thì lại làm phát sinh sự kiện này..
- Ø Ø Thêm, hiệu chỉnh hoặc xoá chú thích của các ô không làm phát sinh sự kiện Change..
- Ø Ø Nhấn phím DEL trên bàn phím sẽ làm phát sinh sự kiện Change (mặc dù ô hiện tại đang là một ô trắng)..
- Ø Ø Những ô bị thay đổi khi sử dụng các lệnh của Excel có thể có hoặc không làm phát sinh sự kiện này.
- Ví dụ, chọn trình đơn Data Ö Form và Data Ö Sort không làm phát sinh sự kiện.
- Nhưng nếu chọn trình đơn Tools Ö Spelling và Edit Ö Replace thì lại làm phát sinh sự kiện này..
- Ø Ø Nếu trong các chương trình con của VBA có làm thay đổi một ô nào đó thì sẽ làm phát sinh sự kiện Change..
- Rõ ràng, sự kiện Change khá phức tạp và có thể có tính chất khác nhau tuỳ theo từng phiên bản của Excel.
- Tuy nhiên, sự kiện này lại rất hữu ích, đặc biệt là những ứng dụng quan trọng, đòi hỏi cần phải có sự kiểm tra, giám sát đến giá trị của từng ô..
- Sự kiện Change phát sinh khi có một ô nào đó bị thay đổi, nhưng thông thường người lập trình chỉ cần quan tâm đến một vùng nào đó trong worksheet mà thôi.
- Sự kiện trong UserForm.
- Các sự kiện trên UserForm phát sinh khi có một hoạt động nào đó xảy ra – thường được phát sinh từ phía người dùng (sự kiện cũng có thể được phát sinh một cách gián tiếp từ quá trình thực hiện một phương thức nào đó).
- Dưới đây là danh sách các sự kiện trong UserForm:.
- Sự kiện Xảy ra khi….
- Sự kiện không gắn với đối tượng.
- Các sự kiện đã được đề cập đều được gắn với một đối tượng nào đó.
- Phần này sẽ giới thiệu một sự kiện không gắn với đối tượng nào cả rất hay dùng, đó là sự kiện và “OnKey”.
- Sự kiện này sẽ được truy cập thông qua đối tượng Application..
- Sự kiện OnKey .
- Để cài đặt cho sự kiện OnKey, sử dụng phương thức OnKey có trong đối tượng Application..
- Ví dụ như nếu cần gán sự kiện cho tổ hợp phím CTRL+Phím cộng , gán tham số Key.
- Ví dụ sau sẽ xử lý sự kiện OnKey để cài đặt lại chức năng của phím PgUp và phím PgDn.
- Để xoá sự kiện OnKey cho một phím nào đấy, cần phải thực thi lại phương thức OnKey mà không có tham số Procedure .
- Sử dụng phương thức có trong đối tượng Application để thoát khỏi Excel.
- Tạo mới đối tượng Chart, sử dụng phương thức Add..
- Lấy tập đối tượng SeriesCollection..
- Giao diện người dùng.
- Để cài đặt mã lệnh tương ứng khi người dùng kích chuột vào nút lệnh, sử dụng sự kiện Click có trong điều khiển Command Button.
- Trong danh sách xổ xuống Declarations ở góc trên bên phải, chọn sự kiện cần cài đặt mã lệnh..
- VBAIDE sẽ tự động chèn đoạn mã lệnh khởi tạo cho sự kiện.
- Hình IV-17: Các bước thêm sự kiện cho điều khiển Command Button..
- 8 Đối tượng kiểu Range

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt