
Giáo trình tự động hoá
thiết kế cầu đường VBA

Lời nói đầu
Tựđộnghóatrongtấtcảlĩnhvựchiệnđangđượcxãhộiquantâmđặcbiệtbởinhờnó
năngsuấtlaođộngđượcnângcao,chấtlượngsảnphẩmổnđịnhvàtốthơn,nhiềuý
tưởngmớicócơhộitrởthànhhiệnthực.Tựđộnghóacôngtácthiếtkếcôngtrìnhgiao
thôngcũngkhôngnằmngoàiquyluậtchungđó,hiệnnay,hầuhếtcáccôngtytrong
lĩnhvựctưvấnthiếtkếcôngtrìnhgiaothôngđềurấtchútrọngthựchiệntựđộnghóa
côngtácthiếtkếtrongcôngtycủamình.Điềunàyđượcthểhiệnrõnéttrongviệcđầu
tưcủacáccôngty(muasắmmáytính,phầnmềmvàđàotạonhânlực)cũngnhưtriển
khaitựđộnghóathiếtkếrấtnhiềucôngtrìnhtrongthựctế.
Vớisựđadạngcủamình,cácbàitoántrongcôngtácthiếtkếluônđòihỏisựlinhhoạt
củacôngtáctựđộnghóa.Chínhvìvậy,đểphầnnàođápứngđượcyêucầucấpbách
từthựctếsảnxuất,nộidungcuốngiáotrìnhnàyđềcậpđếntấtcảcácvấnđềcơbản
nhấtcủaviệcthựchiệntựđộnghóathiếtkếcôngtrìnhgiaothôngcũngnhưphương
phápđểnângcaomứcđộtựđộnghóachophùhợpvớitừngyêucầuchuyênbiệtxuất
hiệntrongquátrìnhthiếtkế.
NộidungcủagiáotrìnhnàylàsựđúckếtkinhnghiệmgiảngdạymônTựđộnghóa
thiếtkếcầuđườngchosinhviênngànhxâydựngcôngtrìnhgiaothôngvàquátrình
thamgiathựchiệntựđộnghóacôngtácthiếtkếngoàisảnxuấtcủacáctácgiảcũng
nhưcậpnhậtmớinhấtnhữngcôngnghệchủchốtphụcvụchoviệctựđộnghóa.Hơn
nữa,nộidungchínhtậptrungvàonhữngthànhphầncốtlõiphụcvụchomụcđíchtự
độnghóathiếtkếcầuđường,cùngvớinhữngnộidungmangtínhgợimởvàđịnh
hướngchotừngchuyênngành,khiếnchocuốngiáotrìnhnàyhoàntoànphùhợpvới
địnhhướngđàotạotheotínchỉcủaNhàtrường.
Chúngtôixinchânthànhcảmơnsựđónggópýkiếncủacácđồngnghiệptrongquá
trìnhhoànthiệncuốngiáotrìnhnày.
Vớitốcđộpháttriểnrấtnhanhcủacôngnghệnhưhiệnnaythìchắcchắnrằngtrong
thờigiantới,nhiềuvấnđềliênquanđếnviệcthựchiệntựđộnghóathiếtkếsẽphải
thayđổi,vàchúngtôihyvọngrằng,cùngvớicácýkiếnđónggópcủabạnđọcvàsự
cậpnhậtkiếnthứccủabảnthân,thìlầnxuấtbảnsaucủacuốnsáchnàysẽhoànthiện
hơnnữa,sẽđápứngtốthơnnữayêucầucủabạnđọc.
HàNội,ngày01tháng06năm2007
Cáctácgiả.


i
PHẦN I: MỞ ĐẦU .................................................................................. 1
1.Tổngquanvềthiếtkếvàtựđộnghóathiếtkếcôngtrìnhgiaothông.............................. 1
2.Đôinétvềcácphầnmềmdùngchothiếtkếcôngtrìnhgiaothông.................................. 3
3.Lựachọnphầnmềmdùngchothiếtkếcôngtrìnhgiaothông.......................................... 4
4.Chuyênbiệthóaphầnmềm .................................................................................................... 6
5.Kếtchương ..............................................................................................................................11
PHẦN II: LẬP TRÌNH TRÊN ỨNG DỤNG NỀN ...................................... 12
CHƯƠNG I: KHÁI NIỆM........................................................................................ 12
CHƯƠNG II: TỔNG QUAN VỀ VBA ..................................................................... 19
1.ĐặcđiểmcủaVBA.................................................................................................................. 19
2.TrìnhtựxâydựngmộtdựánbằngVBA ............................................................................ 19
3.CấutrúccủamộtdựánVBA................................................................................................ 20
4.MôitrườngpháttriểntíchhợpVBAIDE............................................................................ 21
5.VídụđầutiênvớiVBA.......................................................................................................... 23
CHƯƠNG III: CƠ BẢN VỀ NGÔN NGỮ LẬP TRÌNH VISUAL BASIC ................. 25
1.Nhữngquiđịnhvềcúpháp.................................................................................................. 25
2.Cáctrợgiúpvềcúpháptrongquátrìnhviếtmãlệnh...................................................... 25
3.Tínhnănggợinhớvàtựhoànthiệnmãlệnh ..................................................................... 26
4.TừkhoátrongVB ................................................................................................................... 27
5.Cáckiểudữliệucơbản.......................................................................................................... 28
5.1. Kiểu logic (boolean).......................................................................................................... 29
5.2. Kiểu số nguyên.................................................................................................................. 29
5.3. Kiểu số thực....................................................................................................................... 29
5.4. Kiểu mảng (array) ............................................................................................................. 29
5.5. Kiểu chuỗi (String)............................................................................................................ 31
5.6. Kiểu thời gian (Date)......................................................................................................... 32
5.7. Kiểu Variant ...................................................................................................................... 32
5.8. Kiểu tự định nghĩa (user-defined type).............................................................................. 33
5.9. Kiểu lớp (Class)................................................................................................................. 34
6.KhaibáobiếntrongVB.......................................................................................................... 35
6.1. Khai báo hằng số............................................................................................................... 38
6.2. Khai báo biến..................................................................................................................... 38
6.3. Khai báo kiểu tự định nghĩa .............................................................................................. 38
6.4. Khai báo mảng tĩnh ........................................................................................................... 39
6.5. Khai báo mảng động.......................................................................................................... 39
6.6. Khai báo, tạo và làm việc với biến đối tượng.................................................................... 40
7.Cáctoántửvàhàmthôngdụng ........................................................................................... 40
7.1. Các toán tử......................................................................................................................... 40
7.2. Các hàm toán học .............................................................................................................. 41
7.3. Các hàm chuyển đổi dữ liệu .............................................................................................. 41
7.4. Các hàm xử lý chuỗi.......................................................................................................... 43
8.Cáccấutrúcđiềukhiển ......................................................................................................... 44
8.1. Cấu trúc điều kiện.............................................................................................................. 44
8.2. Cấu trúc lựa chọn .............................................................................................................. 46
8.3. Vòng lặp xác định.............................................................................................................. 47

ii
8.3.1. Vòng lặp theo biến đếm .............................................................................................47
8.3.2. Lặp trong một tập hợp................................................................................................49
8.4. Vòng lặp không xác định ...................................................................................................50
9.Chươngtrìnhcon ................................................................................................................... 51
9.1. Hàm (Function)..................................................................................................................52
9.2. Thủ tục (Sub) .....................................................................................................................52
9.3. Truyền tham số cho chương trình con................................................................................52
9.3.1. Truyền tham số theo tham chiếu................................................................................53
9.3.2. Truyền tham số theo tham trị.....................................................................................54
9.3.3. Tham số tuỳ chọn.......................................................................................................54
9.3.4. Danh sách tham số với số lượng tham số tuỳ ý..........................................................55
9.3.5. Hàm có giá trị trả về là kiểu mảng.............................................................................55
9.4. Biến trong chương trình con ..............................................................................................56
9.5. Cách thức gọi chương trình con.........................................................................................58
9.6. Thoát khỏi chương trình con..............................................................................................59
10.Tổchứccácchươngtrìnhcontheohệthốngcácmô‐đunchuẩn .................................. 59
11.LàmviệcvớiUserFormvàcácthànhphầnđiềukhiển .................................................. 60
11.1. Các vấn đề chung .............................................................................................................60
11.1.1. Tạo UserForm và các thành phần điều khiển trong VBA IDE ................................63
11.1.2. Các thuộc tính của UserForm và các thành phần điều khiển. ..................................64
11.1.3. Các phương thức của UserForm và các thành phần điều khiển...............................66
11.1.4. Các sự kiện trên giao diện........................................................................................66
11.1.5. Ví dụ.........................................................................................................................67
11.2. Làm việc với UserForm ...................................................................................................68
11.3. Các điều khiển thông dụng...............................................................................................69
12.Cáchộpthoạithôngdụng................................................................................................... 76
12.1. Hộp thông điệp (Message Box – MsgBox)......................................................................76
12.2. Hộp nhập dữ liệu (Input Box – InputBox) .......................................................................77
12.3. Hộp thoại dựa trên điều khiển Common Dialog. .............................................................78
13.Lậptrìnhxửlýtậptin.......................................................................................................... 80
13.1. Các hình thức truy cập tập tin ..........................................................................................81
13.2. Xử lý dữ liệu trong tập tin với các hàm I/O: ....................................................................82
13.2.1. Mở tập tin:................................................................................................................82
13.2.2. Đọc dữ liệu từ tập tin: ..............................................................................................82
13.2.3. Ghi dữ liệu vào tập tin: ............................................................................................84
13.2.4. Đóng tập tin..............................................................................................................86
13.3. Xử lý dữ liệu trong tập tin theo mô hình FSO (File System Object) ...............................86
13.3.1. Tạo tập tin mới.........................................................................................................88
13.3.2. Mở tập tin đã có để thao tác.....................................................................................89
14.GỡrốivàbẫylỗitrongVBAIDE ........................................................................................ 90
14.1. Phân loại lỗi trong lập trình..............................................................................................90
14.2. Gỡ rối trong lập trình .......................................................................................................91
14.2.1. Phát hiện lỗi lúc thực thi ..........................................................................................91
14.2.2. Các phương pháp thực thi mã lệnh ..........................................................................92
14.2.3. Cửa sổ trợ giúp gỡ rối ..............................................................................................93
14.3. Bẫy lỗi trong VBAIDE.....................................................................................................95
14.3.1. Câu lệnh On Error....................................................................................................95
14.3.2. Đối tượng Err...........................................................................................................96
14.3.3. Hàm Error ................................................................................................................97
CHƯƠNG IV: LẬP TRÌNH TRÊN MICROSOFT EXCEL ....................................... 99
1.TổngquanvềMicrosoftExcel .............................................................................................. 99
1.1. Khả năng của Excel............................................................................................................99
1.2. Giao diện của Excel ...........................................................................................................99
1.3. Khả năng mở rộng của Excel ...........................................................................................100
2.Macro ..................................................................................................................................... 100

