98 End Sub 14.3.3. Hàm Error Hàm Error trả về chuỗi ký tự chứa mô tả về lỗi tương ứng của một số hiệu lỗi. Cú pháp của hàm như sau: Error[(errornumber)] Tham số errornumber là tham số tuỳ chọn, là số nguyên chứa số hiệu của một lỗi nào đó. Nếu errornumber là một lỗi hợp lệ nhưng chưa được định nghĩa, hàm Error sẽ trả về chuỗi “ Application-defined or object-defined error.”. Nếu errornumber là một số không hợp lệ thì sẽ làm phát sinh lỗi. Nếu tham số errornumber bị bỏ qua, hàm Error sẽ trả về mô tả của lỗi thực thi gần nhất. Ví dụ sau sẽ hiển thị mô tả lỗi tương ứng của các số hiệu lỗi trong cửa sổ trung gian. Sub VD_Error() Dim ErrNumber For ErrNumber = 61 To 64 ' Lặp qua các giá trị 61 - 64. Debug.Print Error(ErrNumber) ' In mô tả lỗi trong cửa sổ trung gian. Next ErrNumber End Sub C C H H Ư Ư Ơ Ơ N N G G I I I I I I : : C C Ơ Ơ B B Ả Ả N N V V Ề Ề N N G G Ô Ô N N N N G G Ữ Ữ L L Ậ Ậ P P T T R R Ì Ì N N H H V V I I S S U U A A L L B B A A S S I I C C 99 100 CHƯƠNG IV: LẬP TRÌNH TRÊN MICROSOFT EXCEL 1. Tổng quan về Microsoft Excel 1.1. Khả năng của Excel Microsoft Excel là một phần mềm chuyên xử lý bảng tính của hãng phần mềm nổi tiếng Microsoft. Excel thực sự là một công cụ rất mạnh mẽ phục vụ công tác tính toán, lập bảng biểu… Với các bài toán từ đơn giản đến phức tạp, ta đều có thể sử dụng Excel để giải quyết một cách dễ dàng với rất nhiều tính năng sẵn có: Ø Ø Khả năng tổ ch ức dữ liệu mạnh mẽ với hệ thống các ô, vùng dữ liệu, các bảng tính…; Ø Ø Khả năng xử lý dữ liệu như truy vấn, lọc, tính toán… với hệ thống rất phong phú các hàm cơ bản cũng như các hàm chức năng chuyên biệt; Ø Ø Khả năng lập báo cáo với cách tổ chức bảng biểu và hệ thống biểu đồ tương đối hoàn chỉ nh; Ø Ø Khả năng in ấn với nhiều lựa chọn khác nhau. Với cách tổ chức giống như bảng tính thông thường, Excel là một phần mềm bảng tính trực quan và rất dễ sử dụng. Chính bởi điều này khiến cho Excel là một trong những phần mềm được sử dụng phổ biến nhất. 1.2. Giao diện của Excel Giao diện là nơi mà người dùng tương tác với chương trình và một giao diện hợp lý là giao diện quen thuộc với người dùng. Do chuyên về bảng tính, nên giao diện của Excel (như hình dưới) được thiết kế dựa trên sự mô phỏng của cấu trúc bảng tính thông thường. Hình IV-1: Giao diện chính của Excel. Các thành phần chính trong giao diện của Excel bao gồm: C C H H Ư Ư Ơ Ơ N N G G I I V V : : L L Ậ Ậ P P T T R R Ì Ì N N H H T T R R Ê Ê N N M M I I C C R R O O S S O O F F T T E E X X C C E E L L 101 1. Thanh trình đơn là nơi chứa các lệnh dùng để gọi đến các chức năng của chương trình. Hệ thống thanh trình đơn được truy cập bằng chuột, và trong một số lệnh phổ biến còn có thể sử dụng tổ hợp phím (ví dụ để lưu bảng tính có thể bấm phím Ctrl+S). 2. Thanh công cụ có rất nhiều thanh công cụ khác nhau, mỗi thanh công cụ chứa các nút lệnh trực quan hoặc các lựa chọ n dùng để thực hiện một nhóm chức năng nào đó trong chương trình. Hay nói cách khác, một lệnh có thể được gọi từ thanh công cụ hoặc từ thanh trình đơn. 3. Thanh công thức bao gồm ô chứa địa chỉ của ô hiện hành và ô chứa nội dung của ô hiện hành. Tại đây ta có thể xem được công thức trong một ô nào đó trong khi ô đó vẫn chứa kết quả của công thức đó. 4. Workbook là mộ t tệp tài liệu của Excel. Mỗi Workbook có thể chứa nhiều bảng tính (Worksheet) và các dữ liệu mở rộng khác. Tại mỗi thời điểm chỉ có một worksheet hiện hành và ta chỉ có thể làm việc với worksheet này. 5. Worksheet là loại tài liệu chính trong tệp tài liệu của Excel, mỗi worksheet chứa các ô tính (cell) được tổ chức thành các hàng và cột. 1.3. Khả năng mở rộng của Excel Với hàng trăm hàm và rất nhiều lệnh có sẵn trong Excel khiến cho nó là một chương trình xử lý bảng tính rất mạnh, có thể giải quyết hầu hết các bài toán từ đơn giản đến phức tạp. Tuy vậy, việc lập trình mở rộng trên Excel vẫn luôn được đề cập đến, không những chỉ với mục đích là lập trình tạo thêm những tính năng mới cho Excel mà còn để kết hợp các tính năng sẵ n có của chương trình Excel để giải quyết những vấn đề mang tính chuyên biệt hoá cao. Bộ chương trình Dự Toán là một ví dụ cụ thể cho việc lập trình mở rộng trên Excel. Các bài toán chuyên biệt về tính toán dự toán công trình đã được giải quyết một cách dễ dàng dựa trên sự kết hợp giữa các hàm có sẵn trong Excel và một số tính năng mới về cơ sở dữ liệu. Việc lập trình mở rộng Excel có thể được thực hiện theo nhiều cách khác nhau, nhưng đơn giản và hiệu quả nhất có thể kể đến những cách sau: Ø Ø Lập trình mở rộng thông qua môi trường lập trình VBAIDE được tích hợp sẵn trong Excel. Theo cách này, người dùng sẽ sử dụng ngôn ngữ lập trình VB để lập trình mở rộng Excel. Các ứng dụng được tạo ra theo cách này gắn liền với tệp tài liệu của Excel (Workbook). Ø Ø Lập trình mở rộng thông qua bộ công cụ lập trình Visual Studio Tools for Office (VSTO) trong bộ công cụ phát triển phần mềm Microsoft Visual Studio. Theo cách này, người sử dụng có thể lập trình tạo ra các ứng dụng chuyên nghiệp dạng Add-in (ứng dụng bổ sung trong Excel) bằng các ngôn ngữ được hỗ trợ trong Microsoft Visual Studio. Ứng dụng mở rộng dạng này được lưu trữ tách biệt với tệp tài liệu của Excel nên rất dễ dàng phân phối. Với nhữ ng ưu điểm vốn có của VBA và cùng với khả năng sẵn có của Excel, hầu hết các bài toán trong lĩnh vực thiết kế công trình giao thông đều có thể giải quyết được thông qua việc lập trình mở rộng Excel. Vì vậy, trong toàn bộ tài liệu này, việc lập trình mở rộng Excel sẽ được đề cập đến theo cách dựa trên môi trường lập trình VBAIDE. Để khởi động VBAIDE, từ cửa sổ chính của Excel, chọn trình đơ n ToolsÖMacroÖVisual Basic Editor, hoặc có thể sử dụng tổ hợp phím ALT+F11. 2. Macro Cách tốt nhất để làm quen với việc lập trình trên Excel chính là sử dụng Macro và tìm hiểu cách thức hoạt động của nó. 102 2.1. Macro là gì? Khi làm việc trong Excel, đôi lúc gặp phải những tình huống mà người sử dụng phải lặp đi lặp lại rất nhiều thao tác để thực hiện các nhiệm vụ tương tự nhau, ví dụ như thường xuyên phải định dạng dữ liệu thành một kiểu bảng giống nhau. Điều này rất dễ dẫn đến sự nhàm chán trong công việc. Do đó, khi thiết kế Excel, Microsoft đã đưa ra khái niệm Macro để có thể gói gọn tất cả các thao tác ấy vào một thao tác duy nhất. Macro là tập hợp các lệnh và hàm được lưu trữ trong một mô-đun mã lệnh của VBA nhằm thực hiện một nhiệm vụ nào đó. Macro có thể được tạo bằng cách: Ø Ø Excel sẽ tự ghi lại thao tác của người dùng khi làm việc trên nó (Macro dạng kịch bản) và khi gọi Macro này, Excel sẽ tự động lặp lại toàn bộ các thao tác trên; Ø Ø Người dùng tự viết các đoạn mã lệnh để thực hiện các thao tác tương ứng. Sau khi được tạo ra, mỗi khi thực thi Macro, tất cả các thao tác đã được lưu trong Macro sẽ được thực hiện tự động. Về thực chất, Macro là một chương trình con dạng thủ tục (Sub) với từ khoá Public. Tuy nhiên, khác với các thủ tục khác, Macro là thủ tục không có tham số. Chính vì vậy, tất cả các thủ tục v ới từ khoá Public và không có tham số đều được xem là Macro và sẽ được hiển thị trong trình quản lý Macro của Excel (cách gọi: chọn trình đơn Tools Ö Macro Ö Macros hoặc bấm Alt+F8). Trong các khai báo chương trình con trong ví dụ sau, ta sẽ thấy được cách định nghĩa một Macro: Sub Macro() ‘ÅMacro Public Sub Macro () ‘ÅMacro Private Sub Macro() ‘ÅThủ tục với từ khoá Private, không phải Macro Sub Macro(Input as Double) ‘ÅThủ tục có tham số, không phải Macro Public Function Macro() as Double ‘ÅHàm, không phải Macro 2.2. Tạo Macro 2.2.1. Tạo Macro theo kịch bản Đây là cách tạo Macro dễ dàng nhất, theo cách này, người sử dụng sẽ chuẩn bị trước tất cả các thao tác sẽ thực hiện (xây dựng một kich bản), sau đó yêu cầu Excel bắt đầu ghi Macro, người dùng sẽ lần lượt thực hiện các thao tác theo kịch bản, Excel sẽ ghi nhận các thao tác và tự động chuyển từng thao tác thành các đoạn mã lệnh VBA tương ứng, đoạn mã lệ nh này sẽ được lưu lại trong tệp XLS và mặc định là trong Module1. CHÚ Ý Nếu trong quá trình thu Macro, người sử dụng thực hiện không đúng theo kịch bản dự định (bị lỗi) và có thêm những thao tác để sửa lại các lỗi đó, thì toàn bộ những thao tác phát sinh này cũng sẽ được ghi nhận như là một phần của Macro. Ví dụ sau sẽ tiến hành thu Macro có nhiệm vụ định dạng một bảng dữ liệu với định dạng như sau: Tiêu đề Tiêu đề Tiêu đề Tiêu đề Nội dung Nội dung Nội dung Nội dung Nội dung Nội dung Nội dung Nội dung TạoMacrotheokịchbảndùngđểđịnhdạngbảngdữliệu: . 1. Thanh trình đơn là nơi chứa các lệnh dùng để gọi đến các chức năng của chương trình. Hệ thống thanh trình đơn được truy cập bằng chuột, và trong một số lệnh phổ biến còn có thể sử dụng tổ. hiển thị trong trình quản lý Macro của Excel (cách gọi: chọn trình đơn Tools Ö Macro Ö Macros hoặc bấm Alt+F8). Trong các khai báo chương trình con trong ví dụ sau, ta sẽ thấy được cách định. chứa các nút lệnh trực quan hoặc các lựa chọ n dùng để thực hiện một nhóm chức năng nào đó trong chương trình. Hay nói cách khác, một lệnh có thể được gọi từ thanh công cụ hoặc từ thanh trình