NGÔN NGỮ VBSCRIPT PHẦN PHÁT BIỂU LỆNH (statement)
- Chuyển điều khiển cho 1 procedure Sub hoặc Function.
- [Call] tên_Sub_hoặc_Function [danh sách đối số]
- Thành phần
- Diễn giải
- Call
- Từ khoá tuỳ chọn. Nếu chỉ định, bạn phải đóng danh sách đối số trong cặp (). Ví dụ:
- Call MyProc(0)
- tên_Sub_hoặc_Function
- Phải có. Tên của procedure cần gọi.
- danh sách đối số
- Tùy chọn. Phân tách các biến, mảng, hoặc biểu thức chuyển cho procedure.
- Call MyFunction("Hello World")
Function MyFunction(text)
MsgBox text
End Function
- Khai báo biến và định khoảng lưu trữ.
- Dim tên_biến[([số_chiều_biến_mảng])][, tên_biến[([số_chiều_biến_mảng)]] . . .
- Thành phần
- Diễn giải
- tên_biến
- Tên của biến; phải theo cú pháp tên biến thông thường.
- số_chiều_biến_mảng
- Chiều của biến mảng; lên đến 60 chiều có thể khai báo. Số_chiều_biến_mảng sử dụng theo cú pháp sau:
- biên_trên [,biên_trên] . . .
- Biên dưới của 1 mảng luôn luôn zero.
- Biến khai báo với Dim tại cấp script là tồn tại trong tất cả procedures trong script. ở procedure, các biến chỉ tồn tại trong procedure đó.
- Khai báo Dim với 1 biến và cặp () rỗng để khai báo 1 array động. Sau khi khai báo 1 array động, dùng khai báo ReDim trong 1 procedure để khai báo số chiều và và các thành phần trong array. Nếu bạn khai báo 1 lại (ReDim) 1 array đã khai báo số chiều rõ ràng bằng khai báo Dim, thì bị lỗi.
- Dim Names(9) ' Khai báo 1 mảng Names có 10 phần tử.
Dim Names() ' Khai báo mảng động.
Dim MyVar, MyNum ' Khai báo 2 biến.
- Lặp 1 khối lệnh trong khi điều kiện đúng(True) hoặc cho đến khi điều kiện còn đúng.
- Do [{While | Until} điều_kiện]
[khối_lệnh]
[Exit Do]
[khối_lệnh]
Loop- Hoặc, bạn có thể dùng cú pháp:
- Do
[khối_lệnh]
[Exit Do]
[khối_lệnh]
Loop [{While | Until} điều_kiện]
- Thành phần
- Mô tả
- điều_kiện
- Biểu thức số(numeric) hoặc chuỗi(string) đúng(True) hoặc sai(False). Nếu điều kiện là Null(không có giá trị hợp lệ), điều kiện được xem như False.
- khối_lệnh
- 1 hoặc nhiều lệnh được lặp trong khi điều kiện đứng hoặc đến khi điều kiện đúng.
- Lệnh Exit Do chỉ có thể dùng trong cấu trúc điều khiển Do...Loop để chuyển hướng thoát khỏi Do...Loop. Lệnh Exit Do đặt mọi nơi trong Do...Loop và số lượng lệnh bất kỳ . Thường dùng để định lượng một vài điều kiện (ví dụ, If...Then), Exit Do chuyển điều khiển tức thì cho các lệnh đi ngay sau Loop.
- Khi dùng trong nhiều Do...Loop lồng nhau, Exit Do chuyển điều khiển để lặp Do..Loop lồng trên nó 1 cấp.
- Do Until DefResp = vbNo
MyNum = Int (6 * Rnd + 1) ' Kết sinh ngẫu nhiên 1 số nguyên ở giữa 1 và 6.
DefResp = MsgBox (MyNum & " Do you want another number?", vbYesNo)
Loop
Dim Check, Counter
Check = True: Counter = 0 ' Khởi tạo biến.
Do ' loop ngoài.
Do While Counter < 20 ' loop trong.
Counter = Counter + 1 ' tăng biến đếm.
If Counter = 10 Then ' If điều kiện=True...
Check = False ' set giá trị flag=False.
Exit Do ' Thoát loop trong.
End If
Loop
Loop Until Check = Fals
- Thoát khỏi 1 khối: Do...Loop, For...Next, Function, hoặc Sub.
- Exit Do
- Exit For
- Exit Function
- Exit Sub
- Thành phần
- Mô tả
- Exit Do
- Thực hiện thoát khỏi Do...Loop và chỉ dùng trong Do...Loop.
- Exit For
- Thực hiện thoát khỏi For...Next và chỉ dùng trong For...Next.
- Exit Function
- Thực hiện thoát khỏi Function và chỉ dùng trong Function.
- Exit Sub
- Thực hiện thoát khỏi Sub và chỉ dùng trong Sub.
- Lặp 1 nhóm lệnh với 1 số lần chỉ định ra.
- For biến_đếm = bắt_đầu To kết_thúc [Step bước_nhẩy]
[nhóm_lệnh]
[Exit For]
[nhóm_lệnh]
Next
- Thành phần
- Mô tả
- biến_đếm
- Biến kiểu số dùng như bộ đếm lặp. Không được dùng biến kiểu mảng.
- bắt_đầu
- Giá ban đầu của biến đếm.
- kết_thúc
- Giá trị cuối cùng của biến đếm.
- bước_nhảy
- Số lượng tăng thêm của biến đếm sau mỗi lần lặp.Nếu không chỉ định thì bước nhảy là 1.
- nhóm_lệnh
- 1 hoặc nhiều câu lệnh mà For và Next sẽ thực hiện theo số lần lặp đã chỉ định.
- For I = 1 To 10
For J = 1 To 10
For K = 1 To 10
. . .
Next
Next
Next
- Lặp 1 nhóm lệnh cho từng thành phần của 1 mảng hay tập hợp.
- For Each thành_phần In nhóm
[nhóm_lệnh]
[Exit For]
[nhóm_lệnh]
Next [thành_phần]
- Thành phần
- Mô tả
- thành_phần
- Biến dùng để lặp với tất cả các thành phần của tập hợn(collection) hoặc array. Ðối với collections, thành_phần chỉ có thể là biến Variant, 1 loại biến Object, or bất kỳ biến Automation object . Ðối với arrays, thành_phần chỉ có thể là biến Variant.
- nhóm
- Tên của tập hợp object hoặc array.
- nhóm_lệnh
- 1 hoặc nhiều lệnh được thực hiện lặp theo từng mục (item) trong nhóm.
- Khai báo tên, đối số, và mã hình thành thân của thủ tục hàm Function.
- [Public [Default] | Private] Function tên_hàm [(danh_sách_đối_số)]
[nhóm_lệnh]
[tên_hàm = biểu_thức]
[Exit Function]
[nhóm_lệnh]
[tên_hàm = biểu_thức]
End Function
- Thành phần
- Mô tả
- Public
- Xác định Function có thể dùng trong các procedures scripts khác.
- Default
- Chỉ dùng với từ khoá Public tròn 1 khối lớp(Class) để chỉ định Function procedure là phương thức mặc nhiên cho lớp. Lỗi xẫy ra khi có hơn 1 thủ tục Default chỉ định tròn 1 lớp.
- Private
- Chỉ định rằng Function chỉ được dùng trong những thủ tục trong script nơi nó khai báo hoặc nếu function là 1 thành viên của class.
- tên_hàm
- Tên của Function
- danh_sách_đối_số
- Danh sách biến gán vào giá trị tương ứng khi Function được gọi. Các biến cách nhau bằng các dấu phẩy(,).
- nhóm_lệnh
- Nhóm lệnh bất kỳ được thực hiện trong thân function.
- biểu_thức
- Trả về giá trị của hàm Function.
- Danh_sách_đối_số có cú pháp và các thành phần sau đây:
- [ByVal | ByRef] tên_biến[( )]
- Thành phần
- Mô tả
- ByVal
- Chỉ định đối số được truyền bằng giá trị(value). Ðối số không thay đổi giá trị sau khi kết thúc hàm.
- ByRef
- Chỉ định đối số được truyền bằng tham khảo(reference).Ðối số bị thay đổi giá trị sau khi kết thúc hàm nếu trong hàm có lệnh thay đổi giá trị đối số.
- tên_biến
- Tên biến nhận giá trị truyền vào khi gọi hàm. Biến nhận và giá trị truyền phải tương ứng từ biến đầu tiên đến biến cuối cùng.
- Function BinarySearch(. . .)
. . .
' Value not found. Return a value of False.
If lower > upper Then
BinarySearch = False
Exit Function
End If
. . .
End Function
- Thực hiện một nhóm lệnh tùy theo điều kiện, phụ thuộc và giá trị của 1 biểu thức.
- If điều_kiện Then nhóm_lệnh [Else elsenhóm_lệnh ]
- Or, you can use the block form syntax:
- If điều_kiện Then
[nhóm_lệnh]
[ElseIf điều_kiện-n Then
[elseifnhóm_lệnh]] . . .
[Else
[elsenhóm_lệnh]]
End If- The If...Then...Else statement syntax has these parts:
- Thành phần
- Mô tả
- điều_kiện
- 1 biểu thức số hoặc chuỗi định giá True hoặc False. Nếu điều_kiện là Null, điều_kiện xem như False.
- nhóm_lệnh
- 1 nhóm lệnh cách nhau bằng dấu 2 chấm(:); được chạy nếu điều_kiện là True.
- điều_kiện-n
- Giống như điều_kiện.
- elseifnhóm_lệnh
- 1 hoặc nhiều lệnh chạy nếu điều_kiện-n liên hợp là True.
- elsenhóm_lệnh
- 1 hoặc nhiều lệnh chạy nếu không có điều_kiện hoặc điều_kiện-n là True(tức False).
- One or more nhóm_lệnh executed if no previous điều_kiện or điều_kiện-n expression is True.
- Khai báo biến mảng động, và định khảong trống lưu trữ tại cấp thủ tục.
- ReDim [Preserve] tên_biến(chiều) [, tên_biến(chiều)] . . .
- Thành phần
- Mô tả
- Preserve
- Bảo vệ data trong mảng đã tồn tại khi bạn thay đổi cỡ chiều sau cùng.
- tên_biến
- Tên biển
- chiều
- Chiều của biến mảng
- Giải thích trong 1 program.
- Rem ghi_chú
- hoặc
- ' ghi_chú
- ghi_chú là text bất kỳ ghi_chú bạn muốn đưa vào. Phía sau từ khóa Rem, phải có 1 khoảng trống trước ghi_chú.
- Chạy 1 hoặc vài nhóm lệnh, phụ thuộc vào giá trị của 1 biểu thức.
- Select Case biểu_thức_kiểm_tra
[Case danh_sách_biểu_thức-n
[nhóm_lệnh-n]] . . .
[Case Else danh_sách_biểu_thức-n
[elsenhóm_lệnh-n]]
End Select
- Thành phần
- Mô tả
- biểu_thức_kiểm_tra
- Bất kỳ biểu thức số hoặc chuỗi
- danh_sách_biểu_thức-n
- Phải có nếu có Case. Danh sách có giới hạn của một hoặc nhiều biểu thức.
- nhóm_lệnh-n
- Nhóm lệnh sẽ chạy nếu biểu_thức_kiểm_tra trùng với bất kỳ biểu thức nào trong danh_sách_biểu_thức-n.
- elsenhóm_lệnh-n
- Nhóm lệnh sẽ chạy nếu biểu_thức_kiểm_tra không trùng với bất kỳ biểu thức nào trong các mệnh Case.
- Dim Color, MyVar
Sub ChangeBackground (Color)
MyVar = lcase (Color)
Select Case MyVar
Case "red" document.bgColor = "red"
Case "green" document.bgColor = "green"
Case "blue" document.bgColor = "blue"
Case Else MsgBox "pick another color"
End Select
End Sub
- Khai báo tên, đối số, và mã hình thành thân của thủ tục hàm Sub procedure.
- [Public [Default] | Private] Sub tên_sub [(danh_sách_đối_số)]
[nhóm_lệnh]
[Exit Sub]
[nhóm_lệnh]
End Sub
- Thực hiện một dãy lệnh trong khi điều kiện là True.
- While điều_kiện
[nhóm_lệnh]
Wend
- Thành phần
- Mô tả
- điều_kiện
- 1 biểu thức số hoặc chuỗi định giá True hoặc False. Nếu điều_kiện là Null, điều_kiện xem như False.
- nhóm_lệnh
- Nhóm lệnh được thực hiện khi điều kiện là True.
- Dim Counter
Counter = 0 ' Khởi tạo biến.
While Counter < 20 ' Test giá trị Counter.
Counter = Counter + 1 ' Tăng Counter.
Alert Counter
Wend 'Kết thúc lặp While khi Counter > 19.
- Làm tăng hiệu quả điều khiển lỗi chương trình. Khi một lệnh nào đó trong chương trình bị lỗi thì phát biểu On Error Resume Next sẽ bỏ qua lệnh đó và điều khiển chương trình thực hiện lệnh tiếp theo sau lệnh bị lỗi.
- On Error Resume Next
- On Error Resume Next
Err.Raise 6 ' Raise an overflow error.
MsgBox ("Error # " & CStr(Err.Number) & " " & Err.Description)
Err.Clear ' Clear the error.