62
2.4. Thủ tục và hàm 2.4.1. Thủ tục Sub 2.4.1. Thủ tục Sub
Thủ tục Sub là một chuỗi các câu lệnh Visual Basic được bao trong các câu lệnh
Sub và End Sub. Thủ tục Sub thực hiện một tác vụ nào đó và sau đó trả về điều khiển
cho code chứ không trả về giá trị cho code đang gọi nó.
- Khai báo thủ tục sub:
[modifiers] Sub subname[(parameterlist)] ' Statements of the Sub procedure. End Sub
Trong đó: modifiers chỉ định pham vi truy cập (public, private, protected, friend) của thủ tục, mặc định là public.
Mỗi lần thủ tục được gọi, các câu lệnh trong thủ tục được gọi bắt đầu từ câu lệnh đầu tiên sau Sub và kết thúc khi gặp các từ khóa End Sub, Exit Sub, hoặc câu
lệnh Return. Ta có thể định nghĩa thủ tục Sub các module, modules, classes, và
structures.
- Tham số trong sub:
Thực hiện khai báo các tham số tương tự như khai báo biến, chỉ định tên tham số và kiểu dữ liệu của tham số đó. Ngồi ra ta có thể chỉ định kiểu truyền cho tham số này theo cú pháp sau:
[Optional] [ByVal | ByRef]parametername As datatype
+ Với chỉ định tùy chọn Optional ta phải cung cấp giá trị mặc định theo cú pháp sau:
Optional [ByVal | ByRef] parametername As datatype = defaultvalue
+ Với tùy chọn ByVal ta khai báo tham số đó là tham trị (mặc định là tham trị): Khi truyền giá trị cho tham số là tham trị thì giá trị của nó sẽ khơng thay đổi khi ra khỏi hàm hay thủ tục.
+ Với tùy chọn ByRef ta khai báo tham số đó là tham biến: Khi truyền giá trị cho tham số là tham biến thì giá trị của nó sẽ thay đổi nếu có cập nhật khi ra khỏi hàm hay thủ tục.
- Gọi thủ tục sub: Để gọi thủ tục ta sử dụng cú pháp sau: [Call] subname[(argumentlist)]
2.4.2. Hàm - Function
Function là một chuỗi các câu lệnh Visual Basic được bao trong các câu lệnh
Function và End Function. Function thực hiện một tác vụ nào đó và sau đó trả về điều
khiển cho code đồng thời trả về giá trị cho code đang gọi nó.
- Khai báo hàm:
[modifiers] Function functionname[(parameterlist)] As returntype ' Statements of the Function procedure. End Function
Các tham số trong hàm tương tự như thủ tục. Mỗi khi được gọi, hàm sẽ thực hiện tuần tự các câu lệnh cho đến khi gặp một trong các câu lệnh End Function, Exit
Function,hoặc Return.
-Trả về các giá trị của hàm: Giá trị của hàm sẽ trả về cho chương trình gọi
chúng theo một trong hai cách sau:
+ Gán giá trị cho tên hàm trong một hoặc nhiều câu lệnh trong thân hàm, trong trường hợp này điều khiển không được trả về cho trương trình gọi hàm cho đến khi gặp câu lệnh End Function hoặc Exit Function.
Function functionname[(parameterlist)] As returntype ' The following statement does not transfer control back ' to the calling code.
63 functionname = expression functionname = expression
' When control returns to the calling code, expression ' is the return value.
End Function
+ Sử dụng câu lệnh Return để chỉ định giá trị trả về cho hàm và điều khiển được trả về cho chương trình gọi ngay lập tức.
Function functionname[(parameterlist)] As returntype ' The following statement immediately transfers control ' back to the calling code and returns the value of
' expression. Return expression End Function
- Gọi hàm:Hàm có thể được gán giá trị cho biến hoặc sử dụng như một toán
hạng trong biểu thức như sau:
value = functionname[(argumentlist)]
If ((functionname[(argumentlist)] / 3) <= expression) Then…