Bai Giang VBA_Excel

Embed Size (px)

Citation preview

CHUYN MN HC

K TON EXCELGV: Nguyen Ngoc Minh Email: [email protected]

NI DUNG

1.

2.

To bng, dng hm, cc chc nng macro, validation, advanced filter, lp c phiu thu-chi, phiu nhp xut, th kho, bo co ti chnh tng t file K ton Excel 2011: 2 im Lm c Form nh form ng nhp h thng, cy th mc, form nhp liu v hiu v VBA (phiu nhp xut, thu chi): 3 im

3. 4.

To c Ribon ngi dng cho file s dng nh cc Tab, Group, Control : 3 im C hay, sng to: 2 im

Ng.Ng.Minh

TO RIBON NGI DNG

RIBONGV: Nguyen Ngoc Minh Email: [email protected]

TO RIBON NGI DNGGi s ta mun to mt Ribon nh sau:

Nu bn mun thay i giao din Ribbon trong Excel 2010, bn phi thm RibbonX (xml) vo file customUI14.xml bn trong tp tin Excel ca bn.

Ng.Ng.Minh

TO RIBON NGI DNGTrc tin bn kim tra xem my bn c phin bn NET framework 3 hoc 4 cha, sau bn ci Custom UI Editor For Microsoft Office (trnh son tho giao din ngi dng ty chnh). y l phin bn ca giao din ngi dng Custum Editor cung cp cho bn mt ty chn chn mt tp tin customUI14.xml cho Excel 2010 (nu Excel 2007 th l customUI.xml)Khi m trnh son tho giao din ngi dng ty chnh, bn s thy rng c 5 nt menu trn trnh n thanh cng c nh sau.

Open: M file Excel m bn mun chnh sa (thay i giao din Ribbon cho tp tin ny) Save: Lu RibbonX trong tp tin m bn m trong trnh son tho giao din ngi dng (Khng c th save khi tp tin c m ra trong Excel)

Ng.Ng.Minh

TO RIBON NGI DNGInsert Icons : Chn cc biu tng ca ring bn trong tp tin (cc biu tng s c lu trong tp tin)Validate : Xc nhn RibbonX ca bn v vy bn phi chc chn rng c khng c li chnh t Generate Callbacks : To Callback - iu ny s to ra cc macro (callbacks) cho mi hot ng bn c trong RibbonX. Chn tt c cc callbacks v sao chp chng vo trong mt m-un bnh thng trong bng tnh ca bn. Thc hin: Bn m mt tp tin Excel trong trnh son tho giao din ngi dng ty chnh, click phi vo tn tp tin v chn: Office 20120 Custom UI Part to ra cc tp tin customUI14.xml

Ng.Ng.Minh

TO RIBON NGI DNGCc bc thc hin:1. M mt workbook mi v lu n di Minh_Ribon.xlsm (Excel Macro-Enabled workbook) 2. ng bng tnh dng .xlsm v d

3. M Minh_Ribon.xlsm trong trnh son tho giao din ngi dng ty chnh4. Nhp chut phi vo tn tp tin trong trnh son tho giao din ngi dng ty chnh hoc s dng menu Insert 5. Chn "Office 2010 Custom UI Part" to ra cc tp tin customUI.xml 6. Dn RibbonX di y trong ca s bn phi Ng.Ng.Minh

TO RIBON NGI DNG

Ng.Ng.Minh Excel" do" size="normal" size="normal" size="normal"

TO RIBON NGI DNGBn c th kim tra xem on m trn c b li hay khng bng cch nhp chut vo nt Validate7. Lu cc thay i ca bn trong trnh son tho giao din ngi dng ty chnh (click vo nt Save) v ng li (Chn File -> Exit) 8. M tp tin trong Excel -> chn Ribon Developer -> Visual Basic (hoc nhn Alt + F11). Chn menu Insert Module. Sao chp macro di y phn trong module: Sub Mar_Minh_T1_1(control As IRibbonControl) MsgBox " Khoa KT-KT xin chao ban ! " & Chr(13) & Chr(13) & _

"FILE CHI DUNG CHO HE DAI HOC"End Sub Bn cng c th kim tra xem on macro trn c b li hay khng bng cch vo menu Debug, chn Compile VBAProject

Ng.Ng.Minh

TO RIBON NGI DNG9. Lu cc thay i ca bn v ng liBy gi bn c th kim tra xem kt qu lm. M file Minh_Ribon, bn s thy to c mt ribon nh sau:

V khi vo Ribon Gioi thieu, nhn Button Khoa KT-KT, bn s thy macro c thc thi nh hnh bn phi.

Ng.Ng.Minh

TO RIBON NGI DNGTuy nhin, Custom UI Editor For Microsoft Office li khng h tr Unicode. Vy l sao c giao din ting Vit?Nu ch bn s thy Excel 2010 l cc file zip, v vy nu bn thay i phn m rng thnh zip v m cc tp tin trong chng trnh zip ca bn, bn thy rng c mt vi th mc bn trong zip.

Nn bn cn lm thm cc bc sau:1. M trnh son tho giao din ngi dng ty chnh m file Minh_Ribon.xlsm v dng bng m TCVN3 (ABC) hoc VNI Windows a on m vo.

2. i ui file t Minh_Ribon.xlsm thnh Minh_Ribon.xlsm.zip (ch l i ui thi, ch khng nn file).3. Dng WinRar hoc Winzip m file Minh_Ribon.xlsm.zip (ch l khng c gii nn). M ti th mc \customUI, chn file customUI14.xml, bm nt Extract to n ni cn lu file customUI14.xml.

Ng.Ng.Minh

TO RIBON NGI DNG4. Dng NotePad m file customUI14.xml (n nm trong th mc m bn Extract to, nh chn All file), sau dng Unikey (Nhn Ctr+Shift+F6) convert chui sang Unicode, coppy on convert ny thay th cho chui c trong file customUI14.xml v lu li.5. Trong ca s Winrar (Winzip), chn nt "Add" v tm ti file customUI14.xml ri chn "OK". 6. i ui file t Minh_Ribon.xlsm.zip thnh Minh_Ribon.xlsm. 7. M file Minh_Ribon.xlsm ln kim tra xem Ribon c thc thi ting vit cha.

Ng.Ng.Minh

TO RIBON NGI DNGVy lm th no a cc biu tng ca ring ti vo trong Ribbon?Bn hy thc hin cc bc sau:1. Trc ht bn phi c cc file hnh nh dng Png hoc Icon

2. M tp tin Minh_Ribon.xlsm trong trnh son tho giao din ngi dng ty chnh3. Click chut phi vo customUI14.xml, chn Insert Icons (hoc vo menu Insert chn Icons) chn cc file hnh nh ca bn vo s thy n ngay di customUI14.xml. Nu khng thy th bn hy nhn vo nt + ngay trc customUI14.xml. 4. Nu file nh bn l logo_khoa th on m s l image="logo_khoa" (ch l image ch khng phi l imageMso nh v l icon ca Microsoft)

Thc hin xong cc cng vic trn. Nu m file Minh_Ribon.xlsm m bn thy kt qu nh trn l bn thnh cng bc u.

Ng.Ng.Minh

VBA EXCELGV: Nguyen Ngoc Minh Email: [email protected]

VBA EXCEL VBA (Visual Basic for Application) l ngn ng c Microsoft pht trin dnh ring cho cc ng dng thuc b Office vi mc ch xy dng cc ng dng phc tp. VBA trong MS Excel l mt phn trong . VBA s dng ngn ng lp trnh Visual Basic, mt ngn ng lp trnh tng i d s dng v ph bin nht th gii.

Cu trc ca mt d n VBA: M-un chun (Module): l ni cha cc m lnh khai bo, cc chng trnh con (hm v th tc) M-un lp (Class Module): l ni cha nh ngha cho cc lp ca d n UserForm: l giao din dng hp thoi gip cho vic giao tip gia ngi s dng v chng trnh c thun tin. M mt d n VBA: Cho hin th Ribon Developer (Vo File/Option/Customize ribon -> chn Maintab -> check vo Developer). Chn Tab Developer/Visual Basic (hoc nhn Alt+F11)

Ng.Ng.Minh

VBA EXCELCa s VBA:

Ng.Ng.Minh

VBA EXCEL1. Thanh trnh n (Menu bar):Cha tt c cc la chn cn thit thao tc vi VBA:

2. Ca s d n (Project Explorer Window):Lit k di dng cy phn cp cc d n hin ang c m trong VBA v cc thnh phn c trong trong d n

3. Ca s m lnh (Code Window):Ngi dng c th hiu chnh m lnh, to ra m lnh mi trong ca s m lnh.

4. Ca s tra cu i tng (Object Browser Window):Hin th cc lp, phng thc, thuc tnh, s kin v hng s c trong th vin i tng v trong d n m ngi dng va to.

Ng.Ng.Minh

VBA EXCEL5. Ca s i tng trc quan (Visual Object Window):Cho php ngi dng thao tc trn cc iu khin mt cch d dng v thun tin

6. Hp cng c cha iu khin (Tool Box):Cha cc thanh cng c gip ngi dng c th chn cc iu khin vo ca s ngii dng (UserForm).

7. Ca s thuc tnh (Properties Window):Ca s ny lit k tt c cc thuc tnh ca i tng, qua ngi dng c th tham kho v thay i cc thuc tnh khi cn.

Ng.Ng.Minh

VBA EXCELSub - Function :VBA ch yu dng to cc Sub (th tc) hay cc Function (hm). S khc bit gia Sub v Function l : Sub thi hnh mt khi lnh no v khng c gi tr tr v v ch c th gi Sub t mt Sub hay Function khc. Function cng thi hnh mt khi lnh nhng n c gi tr tr v v c th gi Function c Sub, Function khc hay gi trong Form, Macro.

Phng thc (Method) v thuc tnh (Property):Phng thc: thc thi mt hnh ng no Thuc tnh: m t v gi tr n ang c, ta c th ly gi tr tr v hay xc lp thuc tnh (tr nhng thuc tnh ch c) Vd: Me.Phai = Nam (ta c th ly hay gn gi tr cho n) Me.Listbox.AddItem (n chng tr v gi tr no c)

Ng.Ng.Minh

VBA EXCELPublic - Private : Public: khi vit hm, th tc nu ta khai bo l Public th n s c th c s dng trong cc module, class khc, tm li l c th s dng mi ni. Private: ch c th s dng trong phm vi module, class hin hnh Nu khng ch r l Public hay Private th kiu mc nh l Public

Module Class: Cc on code ta vit trong Form gi l Class. Cn cc on code ta vit trong th Module gi l Module im khc nhau c bn ca Module v Class l : Trong Module nu ta khai bo hm, th tc l Public th ta c th s dng tn hm, th tc mi ni, cn khi ta mun tham chiu n mt hm, th tc c khai bo Public trong Class th ta phi s dng phng thc: Tn Form.Tn hm, th tc

Ng.Ng.Minh

VBA EXCELCc kiu d liu trong VBA :Kiu d liu Byte Integer Long Single Double Boolean 1 byte 2 bytes 4 bytes 4 bytes 8 bytes 1 byte Kch thc 0 > 255 -32,768 > 32,767 -214,763,748 > 214,763,747 - 3,4 x 1038 > 3,4 x 1038 (cha c 7 s l) -1,97 x 10308 > 1,97 x 10308(cha c 14 s l) -1/ 0 hoc True/ False (tng ng kiu Yes/ No trong Table) 165.400 k t -922,3373,203,685,479 > 922,3373,203,685,477 1/1/100 > 31/12/9999 Kiu ny do ngi dng nh ngha Vng gi tr

String(variable length) 10 bytes + string length 0 231 k t String(fixed length) Currency Date Kiu ngi dng Length of string 8 bytes 8 bytes x

Ng.Ng.Minh

VBA EXCELKhai bo bin: Dim As Vd: Dim a As Integer => Tc khai bo bin a l kiu s nguyn

Khai bo hng (gi tr c nh): Dng Const Vd: Const Pi = 3.14

Ng.Ng.Minh

VBA EXCELPhng php quy chiu n d liu trong Excel: - n 1 sheet i n sheet th N: SheetN, Sheets(N), WorkSheetN, WorkSheets(N) i n sheet c tn l M: Sheets(M), WorkSheets(M)

- n 1 cell: SheetM.Cells(hng, ct) => i n trong sheet c tn SheetM WorkSheets(N).Cells(hng, ct) => i n trong sheet th N -Thm 1 dng trong sheet: SheetM.Rows(i).Insert => Chn thm 1 dng v tr hng i

-Xa 1 dng trong sheet: SheetM.Rows(i).Delete => Xa 1 dng v tr hng i

Ng.Ng.Minh

VBA EXCEL-Thm 1 ct trong sheet: SheetM.Columns(i).Insert => Chn thm 1 ct v tr hng i

-Xa 1 ct trong sheet: SheetM.Columns(i).Delete => Xa 1 ct v tr hng i

Khai bo hm:Function([Tn bin] As [Kiu bin]) - Cc khai bo bin cc b - Cc lnh ca hm End Function

Ng.Ng.Minh

VBA EXCELKhai bo th tc:Sub([Danh sch bin]) - Cc khai bo bin cc b - Cc lnh ca hm End Sub V d: To hm tnh giai tha Function MGT(n As Byte) As Long Dim i As Byte MGT = 1 For i = 1 To n MGT = MGT * i Next i End Function BT: Lp hm tnh Xn

Ng.Ng.Minh

VBA EXCELCc cu trc iu khin:Cu trc tun t: C dng: - Cu lnh 1 - Cu lnh 2If < iu kin > then Cc cu lnh End If Cu trc phn nhnh: If Then Cc cu lnh nu iu kin ng Else Cc cu lnh nu iu kin sai End If

Ng.Ng.Minh

VBA EXCELCu trc la chn Select Case : Select Case Case [Cc lnh nu kim tra tha mn gi tr 1] Case [Cc lnh nu kim tra tha mn gi tr 2] . Case Else [Cc lnh nu kim tra khng tha mn cc gi tr trn] End Select Vng lp While...Wend: Vng lp s thc lnh "nhm_lnh" nu "iu_kin" vn cn ng. While iu_kin nhm_lnh Wend

Ng.Ng.Minh

VBA EXCELV d: Tnh tng 100 s u tin: Dim i, N, S As Integer N = 100 S=0 i=1 While i < N S=S+i i=i+1 Wend MsgBox "Tong cua 50 so tu nhien dau tien la: " & S

Ng.Ng.Minh

VBA EXCELCu trc Do While Loop: Vng lp thc hin cho n khi no iu kin vn cn ng. Do While [Cc lnh nu iu kin ng] Exit Do Loop Vd: Hin ln 10 dng Dim i As Byte, MString As String i=1 Do While i 100 ActiveSheet.Range("A1") = Ketqua End Sub

Ng.Ng.Minh

VBA EXCELCu trc lp xc nh: For For = To [Step] [Cc lnh] Exit For Next V d: S dng vng lp For, tnh tng 100 s t nhin u tin Sub TinhTong() Dim i, N, S as Integer N=100 S=0 i=1 For i=1 to N Step 1 S= S+i Next i MsgBox Tng 100 s t nhin u tin l: & S End Sub Ng.Ng.Minh

TO FORM

FORMGV: Nguyen Ngoc Minh Email: [email protected]

TO FORMPhn ny hng dn bn to mt Form ngi dng trong ExcelV d chng ta s Userform nh sau:

Ng.Ng.Minh

TO FORM

Cch to Userform- Cho hin th Ribon Developer (Vo File/Option/Customize ribon -> chn Maintab -> check vo Developer).

- Chn Tab Developer/Visual Basic (hoc nhn Alt+F11)-Chn menu Inset/UserForm Ca s hin ln nh sau: Nu hp cng c khng t ng xut hin, click vo View v sau chn Toolbox

Ng.Ng.Minh

TO FORMGii thiu v hp thoi Toolbox:Label - Nhn Textboxes - Hp vn bn Listbox Hp danh sch Combobox Hp chn Checkbox - Hp kim Option button - Nt la chn Frames - Khung Command button Nt lnh

-

Spin button Nt SpinScrollBar Thanh cun

Ng.Ng.Minh

TO FORMThay i tn v thuc tnh: Nhn chut phi , sau chn vo Properties thc hinLabel (Nhn) : Cc ch nh i hc k ton 4, Kho st ngh nghip, h tn l Label

Chn ch A trn hp Toolbox, sau vch 1 ng trong form, g ch vo, v nh dng li bng cch: Chn label mun nh dng, nhn chut phi, sau chn vo Properties thc hin

Ng.Ng.Minh

TO FORMMt s thuc tnh chnh:Name tn

Caption: th hin lnBackcolor: mu nn BackStyle: kiu nn Enabled: C th thc hin Font: Kiu ch Forecolor: Mu ch Picture: Chn nh nn Visible: hin ln

Ng.Ng.Minh

TO FORMTexbox: Chn k hiu ablMt s thuc tnh:ControlSoure: D liu a voControlTiptext: Hng dn hin ln TextAlign: Canh on text Locked: Kha ScrollBars: C cho thanh cun hay khng (trng hp ni dung qu di). WordWrap: C cho php ch t ng xung dng khng.

Ng.Ng.Minh

TO FORMImage: Hnh chn l hiuMt s thuc tnh:PictureSizeMode: Chn c hnhSpecialEffect: Chn hiu ng c bit

ComboBox: Hp chnMt s thuc tnh:BoundColumn: Ct ly gi tr ColumnCount: S ct cho hin ln ColumnHeads: Tiu ct ColumnWiths: rng cc ct

ControlSoure: Ni d liu a vo Ng.Ng.Minh

TO FORMComboBox: Hp chnMt s thuc tnh:BoundColumn: Ct ly gi tr ColumnCount: S ct cho hin ln

ColumnHeads: Tiu ctColumnWiths: rng cc ct ControlSoure: Ni d liu a vo DropbuttonStyle: Kiu nt s xung ListRow: S dng s xung ListStyle: Kiu danh sch RowSource: Ni d liu a ly (ngun) TabIndex: Th t

Ng.Ng.Minh

TO FORMListBox: Hp danh schMt s thuc tnh:Tng t ComboBox, tuy nhin chim nhiu din tch v danh sch c sn trn form

MultiPage: To trangMt s thuc tnh:TabOrienTation: Chn kiu Tab

Ng.Ng.Minh

TO FORMFrame: Lm vic vi nhmMt s thuc tnh:OptionButton: Nt Option MousePointer: Chn kiu chut ScrollBar: Cho thanh cun hin ln GroupName: Tn Group

Ng.Ng.Minh

TO FORMToggleButton: Nt Toggle: chn kiu thay phin

SpinButton: Nt Spin: tng gim gi trMt s thuc tnh:Max: Gi tr ln nht Min: Gi tr nh nht

SmallChange: Gi tr mi ln thay i.

ScrollBar: Thanh cun:Mt s thuc tnh:Tng t nt Spin, nhng c thanh cun gia.

Ng.Ng.Minh

V D V VBA & FORMGV: Nguyen Ngoc Minh Email: [email protected]

TO FORM NG NHPVD1: To mt Form ng nhp nh sau:

- Cho hin th Ribon Developer (Vo File/Option/Customize ribon -> chn Maintab -> check vo Developer). - Chn Tab Developer/Visual Basic (hoc nhn Alt+F11) -Chn menu Inset/UserForm

Ng.Ng.Minh

TO FORM NG NHP- Click chut phi vo Form, chn Propties. Hp thoi Propertis xut hin: Mc (Name): t tn Form, VD: FrmDangnhap Caption: Tiu Form th hin ln, VD: Dang nhap he thong Sau ta a cc i tng vo Form - Tn ca cc i tng trong v d minh ha: Text Tn ng nhp: Txttendangnhap Text Mt khu: Txtmatkhau Nt ng nhp: Cmddangnhap Nt thot: Cmdthoat

Ng.Ng.Minh

TO FORM NG NHPDouble Click chut vo Form, a on m lnh vo:Phng thc khi ng: Private Sub UserForm_Click() Tt thanh trng thi:

Application.StatusBar = FALSEGn thng tin vo tiu : Application.Caption = "KE TOAN EXCEL - Giang vien: Nguyen Ngoc Minh"

Tt thanh cun:Application.DisplayScrollBars = FALSE Di chuyn n sheet c tn l MAIN Application.Sheets("MAIN").Select End Sub

Ng.Ng.Minh

TO FORM NG NHPDouble Click chut vo Nt ng nhp, a on m lnh vo:Phng thc ng nhp h thng:

Private Sub Cmddangnhap_Click()

Khai bo binDim USERNAME, PASSWORD As String Dim i As Integer Dim TIMTHAY As Boolean Di chuyn n worksheet c tn l "Soure" Worksheets("Soure").Select Gn gi tr ban u cho bin TIMTHAY TIMTHAY = False

Ng.Ng.Minh

TO FORM NG NHPBt u kim tra tn v mt khu:i = 27 a gi tr u tin vo bin USERNAME = Range("A" & i).Value

Khi bin USERNAME c gi tr khc rng, tc l c thnh vinDo While USERNAME "" Ly gi tr dng i, ct A gn vo bin USERNAME USERNAME = Range("A" & i).Value Ly gi tr dng i, ct B gn vo bin PASSWORD PASSWORD = Range("B" & i).Value

Ng.Ng.Minh

TO FORM NG NHPKim tra tn ng nhp v mt khu:If (LCase(Trim(Me.Txttendangnhap.Value)) = USERNAME) And (LCase(Trim(Me.Txtmatkhau.Value)) = PASSWORD) Then Nu c gn gi tr cho bin TIMTHAY = TRUE TIMTHAY = True v thot ra khi vng lp, khng cn tm na. Exit Do End If

Nu khng tm thy, i n dng k tipi=i+1 Loop Sau khi thot khi vng lp, kim tra li bin TIMTHAY If TIMTHAY = True Then

Ng.Ng.Minh

TO FORM NG NHPng Form v tr vo ExcelUnload Me Else Nu tm khng thy th ln nhc nh v xa gi tr trong cc Texbox

Title = "Nhap lai:"MSG = "Sai roi ban oi!" & Chr(13) & " Nhap lai nhe? " Response = MsgBox(MSG, 0 + 64, Title) Me.Txttendangnhap.Value = "" Me.Txtmatkhau.Value = "" Di chuyn vo li Text ng nhp Me.Txttendangnhap.SetFocus End If End Sub Ng.Ng.Minh

TO FORM NG NHPPhng thc kim tra khong trng tn ng nhpPrivate Sub Txttendangnhap_Change() Khai bo bin Dim i, Dai As Integer

Dim KYTU As StringWith Me Dai = Len(.Txttendangnhap.Value) Kim tra tng k t trong chui ng nhp For i = 1 To Dai Ly ra 1 k t ti v tr th i KYTU = Mid(.Txttendangnhap.Value, i, 1)

Nu l k t trngIf KYTU = " " Then Ng.Ng.Minh

TO FORM NG NHPHin th hp thoi thng boMsgBox Tn ng nhp khng cho php c khong trng!", vbOKOnly, K ton Excel" Ri xa Textbox .Txttendangnhap.Value = "" Di chuyn vo li Text ng nhp .Txttendangnhap.SetFocus Thot khi vng lp

Exit ForEnd If Next i End With End Sub

Ng.Ng.Minh

TO FORM NG NHPPhng thc kha mn hnhPrivate Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = 0 Then Cancel = True End Sub

Thot v WindowPrivate Sub cmdThoat_Click() Application.Quit End Sub

Ng.Ng.Minh

T NG THI HNH LNH KHI M FILET ng thi hnh lnh khi m file:Vo VBA, Double vo ThisWorkbook, ri a on m lnh sau vo: Private Sub Workbook_Open() Khi m file, t ng gi Form ng nhp, sau gi form c tn l FrmMain

FrmDangnhap.ShowFrmMain.Show Ri hin thng bo Title = "Khoa KT-KT:" MsgBox " " Khoa KT-KT xin chao ban ! " & Chr(13) & Chr(13) & _

FILE CHI DUNG CHO HE DAI HOC

", vbInformation, Title

Chn sheet c tn l A_MENU

Sheets("A_MENU").Select

Ng.Ng.Minh

T NG THI HNH LNH KHI M FILEKha thanh cun, ch cho gii hn t D4->S28ActiveSheet.ScrollArea = "" ActiveSheet.ScrollArea = "$D$10:$S$28" Gn phm tt gi Macro (phm Shift+F4 gi Macro c tn l Minh)

Application.OnKey "+{F4}", "Minh"End Sub

Ng.Ng.Minh

TO CY TH MCVD2: To mt Cy phn h chng t nh sau: lm c cy th mc trc ht Toolbox bn phi c TreeView v ImageList. => Bn vo Tool (hoc click chut phi vo Toolbox), chn Additional Controls, ri chn 2 mc sau:

Ng.Ng.Minh

TO CY TH MCKhi bn s thy trn Control c thm 2 cng c nh trn hnh v.Bn chn TreeView, ri v ln Form ni bn mun to cay th mc. Sau chn ImageList v cng v ln Form

Ng.Ng.Minh

TO CY TH MCTrong hp thoi Properties ca ImageList, chn mc Custom (Trong v d ny c tn l MinhImageList) => Xut hin hp thoi Property Pages- Ti Th General chn Option 16x16

- Qua th Images, vo Insert Picture chn hnh mun c ti u cy th mc* Ch l Cp ca n c th hin mc Index * Nu khng mun th bn chn Remove Picture

Ng.Ng.Minh

TO CY TH MCBy gi bn g on Code sau cho Form:Private Sub UserForm_initialize() Khai bo bin Dim NodeX As Node

Khai bo s dng ImageList trong TreeViewMinhTreeView.ImageList = MinhImageList To cc nt trong TreeView Set NodeX = MinhTreeView.Nodes.Add(, , "CV5", "Tai san co dinh", 1) Set NodeX = MinhTreeView.Nodes.Add("CV5", tvwChild, "CV5_1", "Tang tai san", 2) Set NodeX = MinhTreeView.Nodes.Add("CV5_1", tvwChild, "CV5_1_1", "Mua moi tai san", 3)

Set NodeX = MinhTreeView.Nodes.Add("CV5_1", tvwChild, "CV5_1_2", "Danh gia lai", 3) Ng.Ng.Minh

TO CY TH MCSet NodeX = MinhTreeView.Nodes.Add("CV5", tvwChild, "CV5_2", "Giam tai san", 2)Set NodeX = MinhTreeView.Nodes.Add("CV5", tvwChild, "CV5_3", "Khau hao tai san", 2) End Sub Xong bn chy th Form bn s thy hot ng tng t cy th mc. Tc bn Doubeclick th th mc con s bung ra, click ln na th n s thu li.

Tuy nhin, n y bn vn cha ng dng vo cng vic c.Vy lm sao khi ta click, th n s thc thi mt cng vic no ? Bn hy gn on Code sau vo:

Ng.Ng.Minh

TO CY TH MCPrivate Sub MinhTreeView_Click()Khai bo bin lu tr mc c chn trn Treeview Dim MenuIndex As String Gn gi tr ca mc c chn trn Treeview vo bin MenuIndex MenuIndex = MinhTreeView.SelectedItem.Key X l cc trng hp Select Case MenuIndex Case "CV5_1_1"

FrmPhieuThu.ShowCase "CV5_1_2" MainForm.Show End Select End Sub

Ng.Ng.Minh

CHUYN MN HC

HAVE A GOOD TIME! BYE BYEEmail: [email protected]

Ng.Ng.Minh