Professional Documents
Culture Documents
0 VBA CoBan
0 VBA CoBan
Cc kiu d liu VB
VB v VBA h tr cc kiu d liu sau:
Boolean
C th cha cc tr logic True or False. Cc t kha True v False l cc hng
nh ngha sn trong VBA.
1.
2.
3.
4.
5.
6.
7.
8.
9.
var1 = True
var2 = False
If myBool = False Then
myVar = 4
myBool = True
Else
myVar = 5
myBool = False
End If
VBA
Thp phn
Kiu ph cha cc s thp
Kch thc: 14 bytes
Tr:
- Khng c phn thp phn: +/ 79,228,162,514,264,337,593,543,950,335
- Cho ti 28 v tr thp phn: +/ 7.9228162514264337593543950335
Tr mc nh: 0
Double
S thc du chm ng.
Kch thc: 8 byte
Tr:
- Tr m: 1.79769313486232E308 to 4.94065645841247E-324
- Tr dng: 1.79769313486232E308 to 4.94065645841247E-324
Tr mc nh: 0
Integer
S nguyn c du. Mt bit biu din du (m hoc dng). Gn tr ngoi vng gi tr s
sinh li runtime.
Kch thc: 2 byte
Tr: 32,768 n 32,767
Tr mc nh: 0
Long
S nguyn c du. Mt bit biu din du (m hoc dng).
Kch thc: 4 byte
Tr: 2,147,483,648 n 2,147,486,647
Tr mc nh: 0
Object
Cha tham chiu n i tng (i.e., a ch). i tng c th l OLE automation hay
ActiveX component, hoc i tng lp bn trong ng dng.
Kch thc: 4 byte
Tr: tham chiu n i tng ty .
Tr mc nh: Nothing
Single
S thc du chm ng.
Kch thc: 4 byte
Tr:
- Tr m: 3.402823E38 to 1.401298E-45
- Tr dng: 1.401298E-45 to 3.402823E38
Tr mc nh: 0
VBA
Kiu ngi dng l cu trc d liu quan trng trong VB, ch yu c dng khi giao
tip vi Windows API.
Kch thc: Tng kch thc cc thnh phn bn trong.
Tr: Ty theo tr cc thnh phn bn trong
Tr mc nh: Gi tr mc nh ca cc thnh phn bn trong
Variant (k t)
Kiu ph rt ging kiu chui c chiu di rhay i.
Cc hm v chui ca VB u chp nhp chui variant, nhiu hm c hai phin bn tr
v chui hay chui variant. Th d hm Left$ v Left.
Kch thc: 22 bytes + chiu di chui
VBA
Chuyn i kiu
VBA cung cp 2 tp hp hm chuyn i. Tp hp u, bao gm Int v Str, c t cc
phin bn trc ca VB v tn ti ch tng thch ngc. Cc hm thuc tp hp th
hai bt u vi ch C l nhng hm chuyn i mi hn.
M$ khuyn chng ta dng tp hp hm th hai.
C php ca tp hp hm th hai v c bn th ging nhau. Th d:
Cbool(tn_bin)
Cc hm chuyn i c VBA h tr l:
CBool
Chuyn 0 thnh false, cc tr khc thnh true
CByte
Chuyn i tn_bin thnh kiu Byte. tn_bin c th cha d liu s bt k hay d
liu chui c th chuyn i thnh s, trong khong 0 n 255. Nu tn_bin ngoi
khong , VBA bo li Overflow. Nu tn_bin l du chm ng, n c lm trn
thnh s nguyn gn nht trc khi chuyn i kiu.
CDec
Chuyn i tn_bin thnh kiu ph Decimal. Hm ny chp nhn d liu s hay
chui c th chuyn thnh s, trong gii hn ca kiu Decimal. y l hm cung cp
phng thc duy nht to kiu ph Decimal.
CDate
Chuyn i tn_bin thnh kiu Date. CDate chp nhn s v chui biu din ngy v
chuyn i thnh dng c m t bi thng tin a phng trn my tnh. Th d my
tnh c ci t dng ngy ca M mm/dd/yy, nu ta nhp ngy dng Anh dd/mm/yy
v dng hm Cdate th ngy c s chuyn i sang dng M.
CCur
Chuyn i tn_bin thnh kiu Currency. CCur chp nhn d liu s hay chui bt k
biu din gi tr tin t. Hm ny nhn dng thp phn hay du phn cch hng ngn
theo thng tin a phng ca my tnh. Ch dng cho VBA.
VBA
CDbl
Chuyn i tn_bin thnh kiu double. Chp nhn d liu s bt k nm trong gii
hn ca kiu Double hoc bt k d liu chui c th chuyn i thnh s trong gii
hn ca kiu Double.
CInt
Chuyn i tn_bin thnh kiu Integer.
CLng
Chuyn i tn_bin thnh kiu Long.
CSng
Chuyn i tn_bin thnh kiu Single.
CStr
Chuyn i tn_bin thnh kiu String. CStr chp nhn kiu d liu bt k.
CVar
Chuyn i tn_bin thnh kiu Variant. CVar chp nhn kiu d liu bt k.
Tuy nhin VB cho php gn biu din chui ca s cho kiu d liu Integer, ri gn s
ny cho thuc tnh chui prompt ca hp thoi. Chuyn i kiu din ra t ng.
Variant
VBA cha kiu d liu c bit, Variant. Bn trong, kiu Variant rt phc tp nhng
cng cc k tin dng. Variant l kiu d liu mc nh ca VBA. Th d sau xem
myVar l Variant:
Dim myVar
Kiu d liu Variant cho php chng ta dng mt bin vi bt k kiu d liu ni ti
no ca VBA, kiu d liu gn nht vi gi tr c gn s t ng lm vic.
minh ha, chng ta kho st hai phin bn ca cng mt hm:
1. Private Function GoodStuff(vAnything, vSomething,
vSomethingElse)
2.
If vAnything > 1 And vSomething > "" Then
3.
GoodStuff = vAnything * vSomethingElse
VBA
4.
Else
5.
GoodStuff = vAnything + 10
6.
End If
7. End Function
8. Private Function GoodStuff(iAnything As Integer, sSomething As_
String, iSomethingElse As Integer) As Integer
9.
If iAnything > 1 And sSomething > "" Then
10.
GoodStuff = iAnything * iSomethingElse
11.
Else
12.
GoodStuff = iAnything + 10
13.
End If
14. End Function
Kiu ph ca var1 l Empty, trong khi var2 ch Empty trong khong thi gian ngn
gia vic thc thi mnh Dim ca dng th nht v pht biu gn dng th hai.
Thm na, kiu ph ca bin l Empty nu bin c gn mt cch tng minh bng tr
Empty.
Dim var1
var1 = Empty
Null
Null l kiu ph c bit ch rng bin khng cha tr hp l. Thng thng bin c
gn tr Null khi c mt li xy ra.
Bin phi c gn tr Null mt cch tng minh.
var1 = Null
Error
Kiu ph Error c dng lu tr m li. Cc m li c VBA sinh t ng, c
dng trong cc on chng trnh kim sot li.
Xc nh kiu ph variant
Cng rt tt khi kiu d liu variant qun l tt c d liu chng ta nhp, nhng chnh
xc mt bin ang c kiu d liu no? VBA cung cp hai hm: VarType, tr li mt s
ni ln kiu d liu; v TypeName, tr li chui tn kiu.
VBA
VarType
C php ca VarType l:
VarType(tn_bin)
Data Subtype
Empty
Null
Integer
Long Integer
Single
Double
Currency
Date
String
OLE Automation Object
Error
Boolean
Array of Variant
Data access object
Decimal
Byte
User-defined Type
Array
VBA Constant
vbEmpty
vbNull
vbInteger
vbLong
vbSingle
vbDouble
vbCurrency
vbDate
vbString
vbObject
vbError
vbBoolean
vbVariant
vbDataObject
vbDecimal
vbByte
vbUserDefinedType
vbArray
Data Subtype
Actual type name of an object
Boolean value: True or False
Byte value
Currency value
Date or time value
Decimal (single-precision) value
Double-precision floating-point value
Uninitialized
Error
Integer value
VBA
Long
Nothing
Null
Object
Single
String
Variant()
Unknown
Dim sString
Dim sPartString
sString = "ABCDEFGH"
sPartString = Mid(sString, 1, 2)
v phin bn chui
1.
2.
3.
4.
Ta nhn thy phin bn variant chm hn 50%. Hin nhin y l s khc bit c
ngha, gi chng ta dng phin bn c kiu bt c khi no c th.
VBA
C php:
Dim VariableName As datatype
Private VariableName As datatype
Public VariableName As datatype
Nu c nhiu bin cn khai bo, c th vit cng dng phn cch bi du phy:
Dim iRefNo As Integer, iAnyVar As Integer
Bng cch khai bo r bin theo cch ny, chng ta c th gim s li trong chng
trnh do g sai tn bin.
Option Explicit
Dng pht biu Option Explicit l mt kinh nghim hay. N buc chng ta khai bo r
bin v hng. Chng ta c th VB t ng thm n vo cc modun mi to bng
cch nh du option Require Variable Declaration trong tab Editor ca hp thoi
Options.
Khi Option Explicit c dng, VB sinh li compile-time khi n gp mt bin cha
c khai bo..
D liu rng
Mt thnh phn quan trong ca ngn ng lp trnh l kh nng pht hin v qul d
liu rng. Chng ta mun ni n d liu cha c. VBA pht trin mt s cch cho
php chng ta gn tr empty hay null cho bin. Hiu c s khc bit gia chng l
quan trng v mi th u c cch dng ring v khng th thay th cho nhau.
vbNull
Dng vi hm VarType xc nh bin cha Null. Th d:
varValue = Null
If VarType(varValue) = vbNull Then
vbNullString
Gn hoc test chui chiu di 0 (chui rng).
strVar1 = vbNullString
tng ng vi:
strVar1 = ""
T kha Null
Gn tr Null cho bin variant. C th test tr null ca bin bng hm IsNull. Ch rng
on m sau
varValue = Null
if varValue = Null
VBA
1.
2.
3.
4.
5.
6.
7.
8.
Dim i As Variant
i = Null
If i = Null Then
MsgBox "It's null" 'Sai
End If
If IsNull(i) Then
MsgBox "It's null" 'ng
End If
Ging vi:
If varValue = vbEmpty then
Array Variables
To mt mng c gi l dimensioning mt mng (ngha xc nh kch thc
ca n). Cc phn t d liu bn trong c gi l phn t v s dng truy cp phn t
c gi l ch s. Cc ch s nh nht v ln nht c gi l cn.
Trong VBA, c bn kiu mng: mng c nh hay mng ng, mng mt chiu
hay nhiu chiu.
Mng c nh
Hu nh chng ta lun bit c bao nhiu phn t cn c lu trong mng, v vy c
th nh ra kch thc thch hp khi khai bo mng.
Dim myArray(5) As Integer
Mng ng
Trong trg hp khng bit trc s phn t cn lu trong mng, chng ta dng mng
ng. Mng ng cho php chng ta m rng s phn t mng khi chng trnh ang
hot ng bng pht biu ReDim.
Mng ng c khai bo bng cch b qua s phn t mng:
Dim iDynamicArray() As Integer
VBA
10
Chng ta cng c th khai bo mng ng cng vi s phn t khi to bng cch dng
ReDim:
ReDim anyDynamicArray(4) As Integer
Trn thc t, ReDim to mng mi, Preserve sao chp d liu t mng c sang mng
mi. iu quan trng cn nh l khi gim kch thc mng, ta s mt d liu thuc cc
phn t b xa.
Trong khi c th nh li kch thc mng bng cch iu chnh cn trn, chng ta
khng th iu chnh cn di.
Redim mt mng lun lm chm tc thc thi, v vy chng ta dng mng c nh
mi khi c th. Mt khi dng mng ng, chng ta nn iu chnh kch thc mng
mi ln nhiu phn t thay v mt.
If lngCurPtr > UBound(varArray) Then
ReDim Preserve varArray(UBound(varArray) + 10)
End If
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Xc nh cn ca mng
Cc hm Ubound v LBound c th tm cn trn v di ca mt mng.
C php:
x = UBound(arrayname)
es &
3. Private Sub Form_Load()
VBA
11
4.
ReDim sValues(0)
5. End Sub
6. Private Sub Command1_Click()
7.
sValues(UBound(sValues)) = txtTextBox.Text
8.
ReDim Preserve sValues(UBound(sValues) + 1)
9. End Sub
Sinh ra cc mng c phn t u 1. Pht biu Option Base phi dng trong modun trc
bt k khai bo bin no.
Mt cch khc l t c cn trn v di trong khai bo bin:
Dim arrayname(lowerboundary To upperboundary) As datatype
Private
Private
ReDim
End Sub
Private
ReDim
End Sub
myArray() As Integer
Sub cmdButtonOne_OnClick
myArray(10,5)
Sub cmdButtonTwo_OnClick
myArray(4,10,2)
VBA
12
VBA
13
Bin khai bo trong phn khai bo ca modun bng cc s dng t kha Public c th
c truy cp trong ton project.
Bin khai bo trong phn khai bo ca modun lp bng cc s dng t kha Public c
th c truy cp trong ton project mt khi i tng ca lp c to.
Bin khai bo bng cch dng pht biu Dim trong th tc hay hm ch c th truy cp
t bn trong th tc hay hm .
Bin trong phm vi th tc
Bin khai bo trong th tc ch c th dng trong th tc. Ta c th dng cng tn bin
trong cc th tc khc nhau. Bin tm mc th tc kt thc khi pht biu End Sub hay
End Function c thi hnh.
C mt loi bin mc th tc c bit l bin static, mc d khai bo trong th tc v
ch c tham chiu trong th tc nhng c thi gian sng mc modun. Gi tr ca
bin vn c lu gi qua cc ln gi th tc.
Khai bo bng t kha Static:
Static lngExecuted As Long
Trong th tc, ch c th dng Dim hay Static khai bo bin, khng th khai bo bin
hay hng bng Public, Private, hay Friend.
Bin trong phm vi modun
Bin c phm vi modun c th c truy cp bi bt c hm thay th tc no trong
modun. Bin v hng mc modun tn ti trong b nh sut thi gian tn ti ca modun.
to bin hay hng mc modun, dng pht biu Dim hay Private trong phn khai bo
ca modun.
Friend Scope
T kha Friend ch c th dng cho khai bo bin hay th tc bn trong modun i
tng nh mt lp hay mt modun form. Friend cho php cc modun i tng khc
trong cng mt project truy cp bin v phng thc m khng cn phi khai bo nh
Public.
Public Scope
Dng bn ngoi th tc thay cho pht biu Dim, Public cho php bin c nhn thy
bi tt c th tc trong tt c modun ca project. Nu c dng trong Class module,
phm vi ca n vt ra ngoi bin gii ca project hin hnh. Vic to t ng giao tip
COM cho mt th tc hay thuc tnh public bt k c ngha l n c th c gi t cc
thnh phn software khc nh l mt phng thc hay thuc tnh ca lp trong n
c nh ngha.
VBA
14
Trong cc cch trn, pht biu Private hay Public c th thay cho pht biu Dim, phm
vi ca bin cng ging nh cc kiu bin khc.
Trong khai bo u tin, bin i tng c tham chiu n class type library, nhng
khng c instance no ca lp c gn cho bin. Lc ny, myObject c t
Nothing. tham chiu lp theo cch ny, ta phi dng hp thoi References. gn
tham chiu n mt th hin ca lp, phi dng pht biu Set trc tn bin:
Set myObject = LibName.ClassName
VBA
15
ByVal
Dng t kha ByVal truyn bin bng tr, th tc c gi nhn bn sao ca bin. S
thay i ca bi bn trong th tc khng nh hng n bin gc.
VBA
16
ByRef v ByVal
Khi truyn bin gia cc th tc trong cng project hay gia cc phng thc ca
ActiveX component, ByRef nhanh hn ByVal nhiu. Tuy nhin khi truyn bin cho cc
phng thc trong out-of-process server, ByVal nhanh hn v cc th tc trong cc
process khc nhau khng th chia s b nh.
Tham bin ty chn
T kha Optional c th dng trong danh sch tham bin khi khai bo mt th tc
ch rng tham bin c th khng cn c truyn. Mt hn ch l tt c tham i i
sau tham i option u tin cng phi l option.
kim tra xem tham bin option kiu variant c c truyn cho th tc hay khng,
dng hm IsMissing. Cc kiu d liu khc s c tr mc nh khi n khng c truyn
nh tham bin. Tuy nhin iu ny c th gy nhm ln. Tham bin option kiu s
nguyn khng c truyn th trong th tc n s c tr 0, ging nh khi n c truyn
bng tr 0!
ParamArray
T kha ParamArray (vit tt ca Parameter Array) cho php chng ta chp nhn mt
s ty tham bin. ParamArray phi l tham bin cui cng ttrong danh sch v khng
c dng trong cng danh sch tham bin option.
ParamArray l mng variant ty chn. Ngha l mng c th rng hoc cha mt s ty
cc phn t kiu variant.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Hng ni ti
Cng vi vic cho php nh ngha hng bng t kha Const, VBA c mt s hng
c nh ngha sn. Th d, thay v vit
If myObject.ForeColor = &hFFFF Then
Ta c th vit:
If myObject.ForeColor = vbYellow Then
VBA
17
CHNG II.
Cu trc
Pht biu GoTo
Cu trc If Then
Select Case
Vng lp For Next
Vng lp Do While
Vng lp Do Until
Sub Hello()
If ThoiGian < 0.5 Then MsgBox "Cho bui sng"
If ThoiGian >= 0.5 Then MsgBox "Cho bui chiu"
End Sub
VBA
18
II. CC CU TRC LP :
a. Cu trc DO WHILE ... LOOP :
DO WHILE <Biu thc iu kin>
Cc cu lnh mun thc thi biu thc iu kin cn ng
LOOP Quay v DO WHILE kim tra biu thc iu kin
Khi VB thc hin vng lp ny, u tin s kim tra biu thc iu kin. Nu
Sai, n s dng li vng lp ngay v thc hin cu lnh k tip cn nu ng th thc
hin cc lnh bn trong. Vy cu trc DO WHILE LOOP thc hin cc cu lnh bn
trong n khi iu kin ng.
b. Cu trc DO LOOP WHILE :
DO
Cc cu lnh thc thi
LOOP WHILE <Biu thc iu kin> Quay v DO nu iu kin ng
Khi VB thc hin vng lp ny, u tin s thc hin khi lnh bn trong n
ngai. Sau khi thc hin n s kim tra iu kin. Nu ng s quay li cn sai th
dng vng lp.
Xt hai v d sau:
Sub DoWhileDemo()
VBA
19
Do-While loop bao gi cng thc hin kim tra iu kin trc khi thc hin cc pht
biu bn trong vng lp.
Do-Loop While ngc li thc hin kim tra iu kin sau khi thc hin cc pht
biu bn trong vng lp.
c. Cu trc DO LOOP UNTIL :
DO
Cc cu lnh thc thi
LOOP UNTIL <Biu thc iu kin> Quay v DO nu iu kin sai
Ging nh DO LOOP WHILE nhng n s thot khi vng lp khi iu kin ng
Vng lp Do-Until c cu trc gn ging vi cu trc Do-While. Nhng Do-Until loop,
s thc hin cho ti khi iu kin ng. Cc bn hy xem hai v d sau y, cc bn c
nhn xt g?
Sub DoUntilDemo()
Do Until IsEmpty(ActiveCell.Value)
ActiveCell.Value = ActiveCell.Value * 2
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Sub DoLoopUntilDemo()
Do
ActiveCell.Value = ActiveCell.Value * 2
ActiveCell.Offset(1, 0).Select
Loop Until IsEmpty(ActiveCell.Value)
End Sub
VBA
20
Xem v d sau:
Sub DeleteRow1()
Dim WkSht As Worksheet
For Each WkSht In ActiveWorkbook.Worksheets
WkSht.Rows(1).Delete
Next WkSht
End Sub
VBA
21
Sub ChangeSign()
Dim Cell As Range
For Each Cell In Range("A1:E50")
If isnumberic(Cell.Value) Then
Cell.Value = Cell.Value * (-1)
End If
Next Cell
End Sub
CHNG III.
1 .EXIT FOR
Cu lnh : EXIT FOR
Lng vo trong vng lp For khi mun dng li vng lp bt c lc no.
2 .EXIT DO
Cu lnh : EXIT DO
Lng vo trong vng lp c cu trc DO khi mun dng li vng lp bt c lc no.
3 .EXIT SUB
Cu lnh : EXIT SUB
Thot khi th tc m bt c lc no m khng cn thc hin cc lnh bnh trong n.
4 .END
Chm dt chng trnh ngay, tt c cc ca s chng trnh u ng li khi bn thc
hin thao tc ny.
5. Beep
Pht ra ting ku Beep
6. Lnh Date :
Cho php bn t li ngy h thng, hay ly ngy h thng
C php : DATE = <ngy bn t>
VD: Date = #June 12, 2000#
7. TIME
Cho php t li gi h thng, hay ly gi h thng
C php : TIME = <Gi bn t>
VD: Time = # 5 : 12 : 45 PM #
8.LOAD
Np 1 form (dng n m 1 Form)
C php : LOAD <Tn Form>
lm xut hin hoc n i s dng phng thc SHOW, v d form1.Show hay
form.Hide
9. Lnh ChDrive
Dng i a lm vic
C php : ChDrive <Tn a :>
10. MkDir
Dng to mt th mc mi trn a
Lng Trn Hy Hin
VBA
22
VBA
23
20. FileDateTime (PathName as string) ' tr v ngy thng v thi gian tp tin
c to ra hoc c chnh sa ln gn nht.
VD:
Msgbox FileDateTime ("C:\Config.sys")
21. GetAttr (PathName as String) as Integer ' tr v mt s nguyn l tr thuc tnh
ca File
Cc hng thuc tnh gm:
vbNormal = 0
vbReadOnly = 1
vbHiden = 2
vbSystem = 4
vbVolume = 8
vbDirectory = 16
vbArchive = 32
VD:
GetAttr "C:\boot.ini" = 35 (file Boot.ini mang cc thuc tnh sau: ReadOnly(1) +
Hiden(2) + Archive(32))
22. SetAttr (PathName as String, Attributes as vbFileAttribute) ' Xc lp thng tin
thuc tnh ca File. S dng cc hng thuc tnh hoc cc gi tr bng trn cho tham
s Attributes
VD:
SetAttr "C:\Boot.ini, 0" ---> xc lp file boot.ini ch mang mt thuc tnh l Normal
SetAttr "C:\Boot.ini,3" ---> xc lp boot.ini mang thuc tnh ch c v n.
23. FreeFile ' tr v mt s integer l ch s (ID) HDH theo di v qun l cc file
ang m (Open). Dng mt bin nguyn lu gi tr ny dng cho cc cuc gi lnh
Open (file). Khi ta khng cn quan tm n cc ch s(ID) ny na. FreeFile s theo
di v cung cp cho ta cc ch s(ID) cha dng.
VD:
Dim Filenum#
FileNum = FreeFile
Open [PathName] For Output As #Filenum
24. Open [PathName as String] For [Mode] As [ID File] ' Mi khi thy lnh Open,
VB s sn sng cho cc thao tc c v ghi ln File c cung cp tham s
[PathName]. C nm ch m tp tin c t tham s [Mode], v [ID File] d
nhin l ch s ca tp tin ang m.
Cc dng thc c bn ca lnh Open:
Open [Pathname] For Input As Filenum ' m File v ch c c thng tin, khng ghi
ln c.
Open [PathName] For Output As Filenum ' m File xut thng tin. Khi c m
theo dng ny mi thng tin c trn File s b mt.
Open [PathName] For Append As Filenum ' m File c v ghi tip ln c.
Open [PathName] For Random As Filenum ' m v truy cp ngu nhin cc bn ghi v
cc trng trn File (phi bit c cu trc ca cc bn ghi)
Open [PathName] For Binary As Filenum ' c ghi theo Byte. y l dng tng qut v
linh hot nht.
VBA
24
VBA
25
byte th[Position].
Lnh Put se ghi ln mi th v ch dng cho truy cp Random v Binary
VD: Put #filenum, , Str ---> s ghi 4 byte bt u v tr byte th 1
35. Reset ' ng tt c cc tp tin c m bng lnh Open
1. Option Explicit
2. Private Sub Form_Load()
3. Dim FileNumber
4.
For FileNumber = 1 To 5
5.
Open "TEST" & FileNumber For Output As
#FileNumber ' M file
6.
Write #FileNumber, "Hello World"
' Ghi
d liu vo file.
Next FileNumber
7.
8.
Reset
' ng file v cp nht d liu vo file
9. End Sub
36. Close (#Filenum) ' ng tp tin c m bng lnh Open.
37. Lock [#Filenum, Expression] ' kho tp tin khng cho ngi khc truy cp khi
App ca bn ang m. Tham s th hai chuyn bit v tr kho. Nu b qua tham s ty
chn ny, lnh Lock s kho ton b tp tin. i vi cc tp tin m theo truy cp tun t
lnh Lock s kho ton b tp tin bt k khong do tham s 2 qui nh.
VD:
Lock #Filenum, 1 To 100 ---> s kho 100 byte t byte th 1
38. Unlock [#Filenum, Expression] ' m kho tp tin, tham s s dng nh Lock.
Ch : cn bo m loi b tt c cc kho vi cu lnh Unlock tng ng trc
khi ng tp tin hoc thot khi chng trnh(cc i s phi tng hp chnh
xc). Nu khng tp tin c th b ri lon.
39. Open:
iu khin s chia s tp tin vo thi gian bn m tp tin. C th dng cu lnh tng
qut nht ca lnh Open
C php:
Open PathName [For mode] [Access access] [Lock] As #Filenum [Len=reclength] '
trong :
PathName l chui cha ng dn n tp tin
Mode l t kho chuyn bit ch tp tin nh Input, Append, Random...
Access l t kho chuyn bit cc thao tc c php trn tp tin m. C ba thao tc:
Read, Write, ReadWrite
VD:Open PathName For Binary Access Read As #Filenum --> cho php bn
c nhng khng cho php thc hin cc thay i i vi tp tin.
Lock l t kho chuyn bit cc thao tc c php trn tp tin m i vi cc qu trnh
khc.
Khc vi Access : iu khin cch thc chng trnh bn lm vic vi tp tin. Vi t
kho Lock c bn kh nng:
VBA
26
CHNG IV.
MT S HM THNG DNG
Tt c cc hm u c dng : Tn hm (cc i s)
1. Hm Abs (Number)
Tr v mt gi tr l gi tr tuyt i ca Number
2. Hm Sin (Number as Double)
Tr v mt s thc l Sin ca mt gc (tnh bng n v Radian)
3. Hm Cos (Number as Double)
Tr v mt s thc l Cos ca mt gc (tnh bng n v Radian)
4. Hm Tan (Number as Double)
Tr v mt s thc l Tan ca mt gc (tnh bng n v Radian)
5. Hm Atn (Number as Double)
Tr v mt s thc l ArcTan ca mt gc (tnh bng n v Radian)
6. Hm Int (Number) :
Tr v phn nguyn ca Number nu n l s dng, cn nu s m th c gi tr nh
hn phn nguyn 1 n v
7. Hm Fix (Number)
Tr v phn nguyn ca Number nu n l s dng, cn nu s m th c gi tr ln
hn phn nguyn 1 n v
8. Hm Sgn (Number)
Tr v mt s nguyn
Nu Number > 0 s tr v 1
Nu Number < 0 s tr v -1
Nu Number = 0 s tr v 0
9. Hm Sqr (Number)
VBA
27
Tr v cn bc hai ca Number
10. Hm Exp (x)
a ra e ly tha x, e l c s Logarit t nhin. Hm tr v mt s thc
11. Hm Log (x)
a ra Logarit t nhin ca x
12. Hm Round (Expression [s])
Hm ny s lm trn s
[,s] : s lm trn qua chm thp phn.
VD : Round(9.7) = 10
Round (9.785 , 2) = 9.79
13. Rnd (Number)
To 1 s ngu nhin l 1 s thc t 0 n Number, vi Number l 1 s nguyn.
14. Hm Now :
Hm ny tr v ngy thng nm v thi gian hin hnh.
15. Hm Day (NgayThangNam)
Tr v ngy trong NgayThangNam m bn ghi.
Ta thng s dng Day(Now) ly ngy h thng
16. Hm Month (NgayThangNam)
Tr v Thng trong NgayThangNam m bn ghi.
Ta thng s dng Month(Now) ly thng h thng
17. Hm Year (NgayThangNam)
Tr v Nm trong NgayThangNam m bn ghi.
Ta thng s dng Year(Now) ly nm h thng
18. Hm Weekday (NgayThangNam)
Tr v ngy th my trong tun ng vi NgayThangNam m bn nhp vo
Ta c th s dng Weekday(Now) ly th ca ngy hin ti
19. Hm Hour (ThoiGian)
Tr v gi ng vi ThoiGian m bn nhp vo
Ta c th s dng Hour(Now) ly gi ca h thng hin ti
20. Hm Minute (ThoiGian)
Tr v pht ng vi ThoiGian m bn nhp vo
Ta c th s dng Minute(Now) ly pht ca h thng hin ti
21. Hm Second (ThoiGian)
Tr v giy ng vi ThoiGian m bn nhp vo
Ta c th s dng Second(Now) ly giy ca h thng hin ti
22. Hm Replace(chuoi, chuoicantim, chuoithaythe, Vitrithaythe, solanthaythe)
Hm ny s tr v mt chui mi theo ngha nh trn. V d:
VBA
28
Replace(2322 , 2 , 5 , 1 , 2) = 5352
Replace(2322 , 2 , 5 , 2 , 2) = 355
23. Hm Val(String)
Hm ny c tc dng i 1 chui thnh 1 s, nu chui ny c k t u l k t
th s tr v 0.
24. Hm Str (Number)
Ngc li Hm Val, hm ny c tc dng i 1 s thnh 1 chui.
25 Hm QBColor (color)
S cho bn mu ca mt i tng no , th hin t 0 n 15.
V d : QBColor (0) s cho mu en, QBColor (4) s cho mu ,
26. Hm RGB (Red, Green, Blue)
Chn mt mu theo mt t l no ngoi cc mu t 0 15. N s l s kt
hp ca 3 mu.
27. Hm Asc (String)
S tr v mt con s, con s ny l m ASCII ca k t String, nu l mt chui
gm nhiu k t th k t s ly k t u tin.
27b. AscW (string) ' Chuyn k t thnh m Ascii (h tr Unicode)
VD: AscW() = 7879 = H1EC7
28. Hm Chr(CharCode)
Hm tr v mt k t tng ng vi mt m ASCII no .
ChrCode l m ASCII ca k t m bn cn bit
28b.ChrW(charcode) ' Chuyn m Ascii thnh k t (H tr Unicode)
VD: ChrW(&H1EC7) =
29. Hm Len (String)
Tr v d di ca chui String, k c khong trng
30. Hm Ltrim (String)
Hm tr v chui mi sau khi ct b cc khong trng bn tri chui String
31. Hm Rtrim (String)
Hm tr v chui mi sau khi ct b cc khong trng bn phi chui String
32. Hm Trim (String)
Hm tr v chui mi sau khi ct b cc khong trng bn tri v bn phi chui
String
33. Hm Left (String,n)
Tr v mt chui k t (k c khong trng) c ct t bn tri ca chui
String, s k t ct ly l n.
34. Hm Right (String,n)
Tr v mt chui k t (k c khong trng) c ct t bn phi ca chui
String, s k t ct ly l n.
VBA
29
VBA
30
V d :
Format(12345.5 , 0000000.00) = 012345.50
Format(12345.5, ######.##) = 12345.5
Format(12345.5, $###.##) = $12345.5
Format(0.34, ###%) = 34%
42. Hm IIF(<iu kin>, Truepart, Falsepart)
Hm ny s tr v gi tr true nu iu kin ng v cho False khi iu kin sai.
Hm ny l cch vit ngn hn ca IFEND IF
V d txt1.text = IFF(x<500,Lng bn cn thp,Bn c lng cao)
43. InStr (start, string1, string2, compare) ' tr v v tr bt u ca mt chui con cn
tm trong mt chui m. tham s 1(start) xc nh v tr bt u tm, tham s 2(string1)
l chui m, tham s 3(string2) l chui cn tm, tham s 4(compare) mc nh l so
snh nhy k t.
Khi b qua tham s th nht th v tr bt u tm mc nh l 1
VD: pos = InStr ("caulacboVB", "VB") ---> pos = 9
44. InStrRev (StringCheck as string, StringMatch as string, Start as Long,
Compare) ' chc nng nh InStr nhng InStrRev hot ng ngc li t cui chui v
c php khc hn. C hai hm u l hm tm kim nhy k t nn cn ch ch
thng v ch HOA. InStrRev thng kt hp vi Mid tch mt tn File khi ng
dn v tn m rng.
VD:
PathFile = "C:\temp\001.tmp"
Pos = InStrRev (pathFile, "\")
PathFile = Mid (PathFile, Pos + 1)
Pos = InStrRev (PathFile, ".")
PathFile = Mid (PathFile, 1, Pos - 1) --->PathFile = "001"
45. StrComp (String1, String2, Compare) ' dng so snh 2 chui.
Tr tr v: (String1 < String2) = -1; (String1 = String2) = 0; (String1 > String2) = 1
46. Like ' so snh 2 chui cho php s dng bit ng ( nh dng k t i din trong
Dos) tr tr v = True nu tng hp
VD: "abcd" Like "*bcd" = True
"abcd" Like "a?cd" = True
"a1cd" Like "a#cd" = True
Ch hm Like mc nh cng l hm nhy k t, theo thit lp Option
Compare form hoc module
47. Join (SourceArray, Delimiter) ' to chui mi t mt mng chui (SourceArray)
vi cc phn t c phn nh bi tham s Delimiter
VD:
Arr (0) = "a"
Arr (1) = "b"
Arr (2)= "c"
Print Join (Arr, " ") = "a b c"
48. Split (Expression as String, Delimiter, Count, Compare) ' to mng chui t mt
VBA
31
VBA
32