You are on page 1of 42

HÀM LẬP SẴN CỦA VBA

Người sọan: Msc.Lê Minh Trung


Khoa Tóan - Tin ĐHSP
Tp Hồ Chí Minh
CÁC HÀM LẬP SẴN CỦA VB

Các hàm chuỗi


Các hàm liên quan tới số

Các hàm liên quan tới ngày/tháng


Vài điều nói trước…

 VB 6.0 có một “thư viện” các hàm được lập


truớc (built-in function) rất hữu ích.
 Để sử dụng các hàm lập trước của VB 6.0
cần:
 Gọi hàm và cung cấp các giá trị cho các tham số
 truyền đối số cho các tham số.
 Sử dụng giá trị trả về của hàm (cho vp phép
gán).

•Tip:
Hàm luôn trả về một giá trị
Ví dụ…

 Hàm Len có cú pháp:


 Len(Chuỗi)
 Tham số Chuỗi “tượng trưng” một chuỗi tổng quát
 Trả về chiều dài (số kí tự) của Chuỗi.
 Dim Dai As Integer, ThongBao As String
ThongBao = “Thong bao hom nay khong co gi de
thong báo”
Dai = Len(ThongBao) Dài 41

Gọi hàm bằng cách truyền đối số


cho các tham số
Hàm Space…
 Cú pháp:
 Space(n)
 Trả về một chuỗi gồm n khỏang trắng.
 Space(n,Chuỗi)
 Trả về một chuỗi gồm n kí tự là kí tự đầu của Chuỗi.
 Msg = Space(4)
Msg = “□□□□“
 Msg = Space(4,”a”)
Msg = Space(4,”acd”) Msg = “aaaa“

•Tip:
•Space(…) trả về Variant
•Space$(…) trả về một chuỗi
Gỡ bỏ khỏang trắng ra khỏi một chuỗi
với LTrim,Rtrim,Trim…
 Gỡ bỏ các khỏang trắng bên trái chuỗi
 LTrim(Chuỗi)
 Gỡ bỏ các khỏang trắng bên phải chuỗi
 RTrim(Chuỗi)
 Gỡ bỏ khỏang trắng hai đầu chuỗi.
 Trim(Chuỗi)
 Msg = “□□□Hello World□□□□”
 LTrim(Msg) “Hello World□□□□”
 RTrim(Msg) “□□□Hello World”

 Trim(Msg) “Hello World”


Tìm chiều dài của chuỗi…

 Cú pháp:
 Len(Chuỗi)
 Có thể dùng với vòng lặp For – Next để
duyệt qua tất cả các kí tự của Chuỗi.
 Dim I As Integer,Chuoi As String
For I=1 To Len(Chuoi)
…………………………………..
Next I
Các hàm cắt chuỗi…

 Cắt bên trái một số kí tự:


 Left(Chuỗi,n) :trả về chuỗi gồm n kí tự đầu
của chuỗi Chuỗi.
 Cắt bên phải một số kí tự:
 Right(Chuỗi,n) : trả về chuỗi n kí tự cuối của
chuỗi Chuỗi.
 Cắt tại vị trí ,n kí tự:
 Mid(Chuỗi,VịTrí,n) : trả lại chuỗi con của Chũoi
bắt đầu tại vị trí VịTrí gồm n kí tự.
Ví dụ…
 Dim Msg As String
123456789012345678
 Msg= “VB that tuyet voi!”
 Left$(Msg,7) “VB that”

 Right$(Msg,4) “voi!”

 Mid$(Msg,4,10) “that tuyet”

 Mid$(Msg,4,100) “that tuyet voi!”


Mid được dùng như một điều lệnh…

 Có thể dùng Mid(…) như một lệnh để thay


đổi nội dung của một chuỗi.
 Giả sử: Msg =“Pascal la so 1”
Mid$(Msg,1,6)=“VBasic”
Msg = “VBasic la so 1”
Mid$(Msg,1,6)=“VBasic cua Microsoft”
Msg = “VBasic la so 1”
Mid$(Msg,1,6)=“VB”
Msg = “VBscal la so 1”
•Tip:
Mid không bao giờ thay đổi chiều dài của chuỗi
Ví dụ…
 Dim Chuoi As String
Dim I As Integer, SoCham As Integer
For I=1 To Len(Chuoi)
If Mid(Chuoi,I,1)=“.” Then
SoCham = SoCham +1
End If
Next I
Chuoi “ ASDas.nm…acv. “
SoCham 5
Ví dụ…
 Dim KiTu As String*1,Chuoi As String
Dim I As Integer KíTu la chữ
For I=1 To Len(Chuoi) Thường
KiTu = Mid(Chuoi,I,1)
If (Asc(KiTu)>=Asc(“a”)) And (Asc(KiTu)<=Asc(“z”)) Then
KiTu = Chr$(Asc(KiTu) – 32)
Mid$(Chuoi,I,1)=KiTu
End If Đổi KiTu thanh
Next I Chu hoa tuong
ung

Đổi tòan bộ chữ thường của


Chuỗi sang chữ hoa.
Hàm so sánh hai chuỗi…

 Select Case StrComp(first, second, vbTextCompare)


Case 0 ' first = second
(e.g. "VISUAL BASIC" vs. "Visual Basic")
Case -1 ' first < second
(e.g. "C++" vs. "Visual Basic")
Case 1 ' first > second
(e.g. "Visual Basic" vs. "Delphi")
End Select
Hàm đổi chữ hoa, chữ thường…

 Text = "New York, USA“


Print UCase$(Text) ' "NEW YORK, USA"
Print LCase$(Text) ' "new york, usa"
Hàm đổi chữ hoa, chữ thường…

 Text = "New York, USA“


Print StrConv(Text, vbUpperCase)
' "NEW YORK, USA"
Print StrConv(Text, vbLowerCase)
' "new york, usa"
Print StrConv(Text, vbProperCase)
' "New York, Usa"
Hàm tìm kiếm một chuỗi trong chuỗi
khác…

 InStr([NơiBắtĐầu,]ChuỗiCha,ChuỗiCon)
 Tham số NơiBắtĐầu là tùy chọn
 Nếu không có bắt đầu tìm kiếm từ đầu ChuỗiCha.
 Trả về vị trí tìm thấy đầu tiên của ChuỗiCon trong
ChuỗiCha
 Trả về 0 nếu không tìm thấy.
 InStr(2,”Lemontree”,”on”)  4
Ví dụ…

 Print InStr("abcde ABCDE", "ABC")


' 7(phân biệt hoa thường)
Print InStr(8, "abcde ABCDE", "ABC")
' 0 (bắt đầu tìm từ 8)
Print InStr(1, "abcde ABCDE", "ABC",
vbTextCompare)
' 1(không phân biệt hoa thường)
Hàm InStrRev…

 InStrRev(ChuỗiCha,ChuỗiCon[,nơibđ])
 Là hàm mới của VB.Giống như hàm InStr nhưng
bắt đầu tìm kiếm từ cuối chuỗi.
 Hữu dụng trong một số tình huống
 Dim ĐDan As String,TenFile As String
Dim ViTri As Integer
ĐDan =“C:\ ABC\MNP\BaiTap\vb.doc”
ViTri = InStrRev(ĐDan,”\”)
TenFile = Mid$(Path,ViTri +1)
Hàm thay thế Replace…

 Replace(Chuỗi,ChuỗiCon,ChuỗiThayThế[,Bắt
Đầu[,SốLần]])
 Tìm kiếm ChuỗiCon trong Chuỗi và thay thế bởi
ChuỗiThayThế.
 Dim Msg As String
Msg = “Pascal that tuyet voi!”
Msg =Replace(Msg,”Pascal”,”VB6.0”)
Msg “VB6.0 that tuyet voi!”
CÁC HÀM LẬP SẴN LIÊN
QUAN TỚI SỐ
Hàm phát sinh số ngẫu nhiên Rnd…

 Rnd trả về một số ngẫu nhiên nằm trong


khỏang [0;1).
 Để gieo giống lại bộ phát sinh ngẫu số ta
dùng hàm Randomize
Hàm Int,Fix,Round…
 Int(SoThuc): cho phần nguyên của số
 Int(3.4523) ‘=3
 Int(-3.4523) ‘=-4
 Fix(SoThuc): loai bỏ phần thập phân
ra khỏi SoThuc
 Fix(3.567) ‘=3 Fix(-3.452) ‘=-3
 Round(SoThuc[,SoChuSoTPhân])
 Round(3.786,2) ‘=3.79
Các hàm khác…

 Hàm Sgn(x): hàm dấu trả về 1 nếu x>0 ,


-1 nếu x<0,0 nếu x=0
 For I=A To B Step Sgn(A-B) (A#B)
 Abs(x) : trả về giá trị tuyệt đối
 Sqr(x): trả về căn bậc hai
 Exp(x): trả về e mũ x.
 Log(x): logarit cơ số e.
CÁC HÀM NGÀY-GiỜ
Hàm Date…

 Trả về ngày lịch theo dạng thức tháng-ngày-


năm(mm-dd-yyyy) cho ngày hiện hành.
 Có thể dùng hàm này để ấn định lại ngày
hiện hành cho hệ thống.
 Date = “mm-dd-yyyy”
 Date=“mm/dd/yyyy”
 Nếu ngày ấn định không hợp lệ sẽ báo lỗi.
 Chỉ là ấn định tạm thời.
Hàm Time…

 Dùng Time để đọc giờ khắc hiện tại của


đồng hồ hệ thống.
 Dùng Time để thiết lập tạm thời giờ khắc
của đồng hồ hệ thống.
 Time=“hh”
 Time=“hh:mm”
 Time=“hh:mm:ss”
Hàm Mô tả
Now Ngày và giờ khắc hiện hành

Date Ngày hiện hành

Time Giờ khắc hiện hành


Hàm DateValue…

 Dùng #...# để khai báo ngày rất bất tiện.


 Có thể dùng DateValue như giải pháp thay thế.
 Dim Today As Date
Today = DateValue(“3-13-2006”)
Today = DateValue(“March 13,2006”)
Today = DateValue(“Mar 13,2006”)
 Sẽ báo lỗi “Type Mismatch” vào thời điểm thực thi
nếu ngày không tồn tại.
Hàm DateSerial…

 Có thể dùng hàm DateSerial để khai báo ngày.


 DateSerial(Năm,Tháng,Ngày).
 Năm từ 09999
 DateSerial(2006,1,35): cho một ngày trong tháng
hai.
 Dùng TimeSerial để khai báo thời khắc.
 TimeSerial(Giờ,Phút,Giây)
 TimeSerial(3,62,30) : ‘4:2:30
Xác định năm nhuận…

 If DateSerial(2000,2,29) <>
DateSerial(2000,3,1) Then
‘nam nhuận
Else
‘năm không nhuận
End If
Hàm WeekDay ()… xác định thứ
của một ngày…

 WeekDay(ngày)
 WeekDay(ngày[,ThứBắtĐầuTuần])
 Print Weekday("8/14/98")
' 6 -> thứ sáu
Print Weekday("8/14/98“,vbMonday)
‘ 5 -> thứ sáu
Hàm DateAdd…

 Trả lại ngày mới khi thêm một khỏang thời gian
vào ngày đang xét.
 Cú pháp:
 NewDate=DataAdd(Interval,number,date)
Thiết lập Mô tả
“yyyy” Năm
“q” Quí
“m” Tháng
“y” Ngày của năm (tương tự d)
“d” Ngày
“w” Tuần
“ww” Tuần
“h” Giờ
“n” Phút
“s” Giây
Hàm DateDiff…

 Để tính số tháng, năm,quí ,giờ… khác biệt


giữa hai khỏang thời gian , ta dùng
DateDiff.
 Result = DateDiff(interval, startdate,
enddate)
Ví dụ…

Now = ‘8/14/1998
Print DateAdd("m", 3, Now)
"11/14/98 8:35:48 P.M."
Print DateAdd("yyyy", -1, Now)
"8/14/97 8:35:48 P.M."
‘ Print DateDiff("m", #1/30/1998#, Now)
7
Print DateDiff("y", #1/30/1998#, Now)
196
Print DateDiff("w", #1/30/1998#, Now)
28
Print DateDiff("ww", #1/1/2000#, Now)
-7
Hàm Format…

Dạng Hiển thị

Format(Now,”m/d-yy”) 3/13-06

Format(Now,”hh:mm”) 08:15

Format(Now,”hh:mm AM/PM”) 08:15 AM

Format(Now,”hh:mm 08:15 03/13/06


mm/dd/yy”)
Một số hàm khác…

LCase(Chuỗi) Đổi sang chữ thường

UCase(Chuỗi) Đổi sang chữ hoa

StrComp(Chuoi1, Chuoi2) So sánh hai chuỗi


Tùy chọn: -1 nếu Chuoi1<Chuoi2
vbTextCompare 0 nếu Chuoi1=Chuoi2
vbBinaryCompare 1 nếu Chuoi1>Chuoi2
IsDate(obj) obj có định dạng ngày
không?
IsNumeric(obj) obj có định dạng số
không?

Sin
Cos
Tan

Arctan

Hex Đổi sang hệ cơ số 16


Một số hàm khác…
DateAdd Cho phép cộng một quãng vào ngày

DateDiff Cho phép trừ một quãng ra một ngày

Day Cho biết ngày trong một ngày lịch

Month Cho biết tháng trong một ngày lịch

Year Cho biết năm trong một ngày lịch

Hour Cho biết giờ trong một tkhắc

Minute Cho biết phút trong một tkhắc

Second Cho biết giây trong một tkhắc .

Weekday Báo cho biết ngày trong tuần của ngày lịch
Ứng dụng xúc sắc…

cmbChon

cmdGieo

lblTB

imgXN
Xáo trộn chuỗi…

txtBD

txtXT

cmdXao
Điều khiển Timer…
•Không hiển thị lúc chạy chương trình
•Dùng trong những chương trình cần định kí
làm một việc gì đó.
•Thuộc tính:
Enabled: True ->sau một khỏang
thời gian sẽ kích họat
Timer
sự kiện timeTên_Timer
False -> không kích họat
sự kiện trên
Interval: khỏang thời gian kích họat sự
kiện timeTên_Timer đơn vị ms
•Sự kiện:

You might also like