BÀI 1: VBA LÀ GÌ? TẠO MACRO ỨNG DỤNG CÁC HÀM TỰ...

12
Đào tạo thc hành Bluesofts Trung tâm đào tạo thc hành Công ty cphn BLUESOFTS Địa ch: P1012, tng 10 CT1A-ĐN2 Đường Hàm Nghi, KĐT Mỹ Đình 2, Từ Liêm, Hà Ni Điện thoi/Fax: 04.379.17200 Mobile: 096.555.6989 Website: http://bluesofts.net Mail: [email protected] VBA TRONG EXCEL CƠ BẢN Trung tâm Đào tạo Thc hành BLUESOFTS Nguyn Duy Tuân: 0904.210.337 1/12 BÀI 1: VBA LÀ GÌ? TẠO MACRO, ỨNG DỤNG CÁC HÀM TỰ TẠO (UDF), CÀI ĐẶT ADD-INS VBA là gì?

Transcript of BÀI 1: VBA LÀ GÌ? TẠO MACRO ỨNG DỤNG CÁC HÀM TỰ...

Page 1: BÀI 1: VBA LÀ GÌ? TẠO MACRO ỨNG DỤNG CÁC HÀM TỰ …bluesofts.net/products/daotao/vba/coban/bai_1_vba_la_gi_macro_hoc... · Đào tạo thực hành Bluesofts Trung tâm

Đào tạo thực hành Bluesofts

Trung tâm đào tạo thực hành – Công ty cổ phần BLUESOFTS Địa chỉ: P1012, tầng 10 CT1A-ĐN2 Đường Hàm Nghi,

KĐT Mỹ Đình 2, Từ Liêm, Hà Nội

Điện thoại/Fax: 04.379.17200 Mobile: 096.555.6989

Website: http://bluesofts.net – Mail: [email protected]

VBA TRONG EXCEL CƠ BẢN Trung tâm Đào tạo Thực hành BLUESOFTS

Nguyễn Duy Tuân: 0904.210.337 1/12

BÀI 1: VBA LÀ GÌ? TẠO MACRO, ỨNG DỤNG CÁC HÀM TỰ TẠO (UDF), CÀI

ĐẶT ADD-INS

VBA là gì?

Page 2: BÀI 1: VBA LÀ GÌ? TẠO MACRO ỨNG DỤNG CÁC HÀM TỰ …bluesofts.net/products/daotao/vba/coban/bai_1_vba_la_gi_macro_hoc... · Đào tạo thực hành Bluesofts Trung tâm

Đào tạo thực hành Bluesofts

Trung tâm đào tạo thực hành – Công ty cổ phần BLUESOFTS Địa chỉ: P1012, tầng 10 CT1A-ĐN2 Đường Hàm Nghi,

KĐT Mỹ Đình 2, Từ Liêm, Hà Nội

Điện thoại/Fax: 04.379.17200 Mobile: 096.555.6989

Website: http://bluesofts.net – Mail: [email protected]

VBA TRONG EXCEL CƠ BẢN Trung tâm Đào tạo Thực hành BLUESOFTS

Nguyễn Duy Tuân: 0904.210.337 2/12

Macro là gì?

Macro là một lệnh lệnh thực thi một hay nhiều thao tác người dùng lên đối tượng Excel

được mã hóa thành các dòng lệnh theo ngôn ngữ lập trình VBA.

Mở menu Developer

(Excel 2010, 2013,…)

(Excel 2007)

Page 3: BÀI 1: VBA LÀ GÌ? TẠO MACRO ỨNG DỤNG CÁC HÀM TỰ …bluesofts.net/products/daotao/vba/coban/bai_1_vba_la_gi_macro_hoc... · Đào tạo thực hành Bluesofts Trung tâm

Đào tạo thực hành Bluesofts

Trung tâm đào tạo thực hành – Công ty cổ phần BLUESOFTS Địa chỉ: P1012, tầng 10 CT1A-ĐN2 Đường Hàm Nghi,

KĐT Mỹ Đình 2, Từ Liêm, Hà Nội

Điện thoại/Fax: 04.379.17200 Mobile: 096.555.6989

Website: http://bluesofts.net – Mail: [email protected]

VBA TRONG EXCEL CƠ BẢN Trung tâm Đào tạo Thực hành BLUESOFTS

Nguyễn Duy Tuân: 0904.210.337 3/12

Sau khi chọn hiển thị tab Developer chúng ta thấy xuất hiện menu dưới đây

Tạo Macro trong môi trường VBA

Bước 1: Nhấn ALT + F11 (menu Developer - > Visual Basic)

Bước 2: Tại màn hình VBE, vào menu Insert -> Module

Bước 3: Soạn thảo mã lệnh – CODE trong module. Ví dụ tạo macro “FillData”

Sub FillData()

Dim I As Long MsgBox "Ban se dien cac giá tri vao A1:A100."

For I = 1 To 100 Cells(I, 1).Value = I

Next I

End Sub

Page 4: BÀI 1: VBA LÀ GÌ? TẠO MACRO ỨNG DỤNG CÁC HÀM TỰ …bluesofts.net/products/daotao/vba/coban/bai_1_vba_la_gi_macro_hoc... · Đào tạo thực hành Bluesofts Trung tâm

Đào tạo thực hành Bluesofts

Trung tâm đào tạo thực hành – Công ty cổ phần BLUESOFTS Địa chỉ: P1012, tầng 10 CT1A-ĐN2 Đường Hàm Nghi,

KĐT Mỹ Đình 2, Từ Liêm, Hà Nội

Điện thoại/Fax: 04.379.17200 Mobile: 096.555.6989

Website: http://bluesofts.net – Mail: [email protected]

VBA TRONG EXCEL CƠ BẢN Trung tâm Đào tạo Thực hành BLUESOFTS

Nguyễn Duy Tuân: 0904.210.337 4/12

Chạy Macro: Đặt con trỏ trong khói Sub..End Sub (trong thân một macro). Nhấn F5

hoặc chọn nút “Run Macro”

Tạo Macro bằng chức năng Record Macro (4 bước)

Ví dụ: Tạo macro để định dạng dữ màu đỏ, cỡ chữ 14, Bold, Tahoma, nền màu vàng.

Hãy chuẩn bị kỹ các thao tác sẽ làm một cách chính xác, không được phép làm sai.

Bước 1: Chọn đối tượng (bôi đen). Ví dụ A3:D12. Vùng chọn này có vai trò như vùng

mẫu.

Bước 2: Vào menu Developer->Record Macro.

Khi cửa sổ Record Macro hiện lên. Đặt tên macro, hãy dùng các ký tự A-Z rồi với đến 0-9

(nếu dùng số) viết liền nhau, không dấu cách, không các ký tự lạ, ký tự toán học….

+ Macro Name: đặt tên macro là “DinhDang”.

+ Shortcut key: nhấn D, thì ta có thể dùng phím tắt CTRL+SHIFT+D để chạy macro này.

+ Store macro in: Nơi lưu macro, ngầm định trong chính tập tinh Excel đang tạo.

+ Description: Để mô tả macro này dùng làm gì, người ta ra nó. Không được viết chữ có

dấu vì môi trường VBA không lưu được chuỗi unicode.

+ Ok: Cuối cùng chọn nút OK để Excel bắt đầu ghi các lệnh mà bạn làm. Hãy thật cẩn

thận từ đây. Không làm sai, làm thừa động tác nào vì tất cả các thao tác đều được Excel lưu lại

vào macro “DinhDang”.

Page 5: BÀI 1: VBA LÀ GÌ? TẠO MACRO ỨNG DỤNG CÁC HÀM TỰ …bluesofts.net/products/daotao/vba/coban/bai_1_vba_la_gi_macro_hoc... · Đào tạo thực hành Bluesofts Trung tâm

Đào tạo thực hành Bluesofts

Trung tâm đào tạo thực hành – Công ty cổ phần BLUESOFTS Địa chỉ: P1012, tầng 10 CT1A-ĐN2 Đường Hàm Nghi,

KĐT Mỹ Đình 2, Từ Liêm, Hà Nội

Điện thoại/Fax: 04.379.17200 Mobile: 096.555.6989

Website: http://bluesofts.net – Mail: [email protected]

VBA TRONG EXCEL CƠ BẢN Trung tâm Đào tạo Thực hành BLUESOFTS

Nguyễn Duy Tuân: 0904.210.337 5/12

Bước 3: Thực hiện các thao tác định dạng. Thực hiện các thao tác định dạng chữ đỏ, 14,

Bold, Tahoma, nền vàng.

Bước 4: Dừng chế độ ghi macro. Vào menu Developer->Stop Recording

Chạy Macro

Bạn hãy chọn một vùng dữ liệu cần thực hiện các thao tác định dạng như lã làm ở trên.

Vào menu Developer-> Macro (Phím tắt ALT+F8). Chọn macro “DinhDang” bạn sẽ thấy

toàn bộ các thao tác thủ công trước đây được tự động làm.

Page 6: BÀI 1: VBA LÀ GÌ? TẠO MACRO ỨNG DỤNG CÁC HÀM TỰ …bluesofts.net/products/daotao/vba/coban/bai_1_vba_la_gi_macro_hoc... · Đào tạo thực hành Bluesofts Trung tâm

Đào tạo thực hành Bluesofts

Trung tâm đào tạo thực hành – Công ty cổ phần BLUESOFTS Địa chỉ: P1012, tầng 10 CT1A-ĐN2 Đường Hàm Nghi,

KĐT Mỹ Đình 2, Từ Liêm, Hà Nội

Điện thoại/Fax: 04.379.17200 Mobile: 096.555.6989

Website: http://bluesofts.net – Mail: [email protected]

VBA TRONG EXCEL CƠ BẢN Trung tâm Đào tạo Thực hành BLUESOFTS

Nguyễn Duy Tuân: 0904.210.337 6/12

Xem và sửa Macro

Vào menu Developer-> Macro (Phím tắt ALT+F8). Chọn macro “DinhDang”, chọn Edit.

Page 7: BÀI 1: VBA LÀ GÌ? TẠO MACRO ỨNG DỤNG CÁC HÀM TỰ …bluesofts.net/products/daotao/vba/coban/bai_1_vba_la_gi_macro_hoc... · Đào tạo thực hành Bluesofts Trung tâm

Đào tạo thực hành Bluesofts

Trung tâm đào tạo thực hành – Công ty cổ phần BLUESOFTS Địa chỉ: P1012, tầng 10 CT1A-ĐN2 Đường Hàm Nghi,

KĐT Mỹ Đình 2, Từ Liêm, Hà Nội

Điện thoại/Fax: 04.379.17200 Mobile: 096.555.6989

Website: http://bluesofts.net – Mail: [email protected]

VBA TRONG EXCEL CƠ BẢN Trung tâm Đào tạo Thực hành BLUESOFTS

Nguyễn Duy Tuân: 0904.210.337 7/12

Cửa sổ VBA/VBE hiện ra và chúng ta có thể chỉnh sửa lại code VBA theo ý. Tuy nhiên

bạn phải thận trọng vì bạn cần có kiến thức cơ bản về VBA.

Để đảo qua màn hình VBA <->Excel nhấn ALT+F11

Xóa Macro

Xóa macro bạn có thể thực hiện trong cửa sổ Macro hoặc vào môi trường VBA để xóa.

Vào menu Developer-> Macro (Phím tắt ALT+F8). Chọn macro “DinhDang”, chọn

Delete.

Gán macro lên nút lệnh, menu

Page 8: BÀI 1: VBA LÀ GÌ? TẠO MACRO ỨNG DỤNG CÁC HÀM TỰ …bluesofts.net/products/daotao/vba/coban/bai_1_vba_la_gi_macro_hoc... · Đào tạo thực hành Bluesofts Trung tâm

Đào tạo thực hành Bluesofts

Trung tâm đào tạo thực hành – Công ty cổ phần BLUESOFTS Địa chỉ: P1012, tầng 10 CT1A-ĐN2 Đường Hàm Nghi,

KĐT Mỹ Đình 2, Từ Liêm, Hà Nội

Điện thoại/Fax: 04.379.17200 Mobile: 096.555.6989

Website: http://bluesofts.net – Mail: [email protected]

VBA TRONG EXCEL CƠ BẢN Trung tâm Đào tạo Thực hành BLUESOFTS

Nguyễn Duy Tuân: 0904.210.337 8/12

Nhấp chuột phải trên nút lệnh, chọn “Assign Macro…”, cửa sổ Macro hiện ra, chọn macro

“DinhDang”.

Lưu tập tin chứa Macro

Vào menu File->Save As… Lưu tập tin với kiểu xls hoặc xlsm. Nếu lưu xlsx theo chế độ

ngầm định của Excel 2007 trở lên thì macro sẽ mất vì loại file này theo quy định không chứa

macro.

Page 9: BÀI 1: VBA LÀ GÌ? TẠO MACRO ỨNG DỤNG CÁC HÀM TỰ …bluesofts.net/products/daotao/vba/coban/bai_1_vba_la_gi_macro_hoc... · Đào tạo thực hành Bluesofts Trung tâm

Đào tạo thực hành Bluesofts

Trung tâm đào tạo thực hành – Công ty cổ phần BLUESOFTS Địa chỉ: P1012, tầng 10 CT1A-ĐN2 Đường Hàm Nghi,

KĐT Mỹ Đình 2, Từ Liêm, Hà Nội

Điện thoại/Fax: 04.379.17200 Mobile: 096.555.6989

Website: http://bluesofts.net – Mail: [email protected]

VBA TRONG EXCEL CƠ BẢN Trung tâm Đào tạo Thực hành BLUESOFTS

Nguyễn Duy Tuân: 0904.210.337 9/12

Copy Macro, các hàm tự tạo vào tập tin Excel

Giả xử có các hàm được viết dưới đây, hãy copy vào trong tập tin Excel để chạy.

Function GetXlVersion() As String GetXlVersion = Val(Application.Version)

End Function

Function TienThue(Slg, Dgia, TyleThue) As Double

TienThue = Slg * Dgia * TyleThue End Function

Sub FillData() Dim I As Long

MsgBox "Ban se dien cac giá tri vao A1:A100." For I = 1 To 100

Cells(I, 1).Value = I Next I

End Sub

Function ThueTNCN(Luong As Double, Optional Socon As Integer) As Double

Dim GiamTruNuoiCon As Double, MucLuong As Double, ThucLuong As Double MucLuong = 9

GiamTruNuoiCon = 3.6 ThucLuong = Luong / 10 ^ 6 - MucLuong - Socon * GiamTruNuoiCon

Select Case ThucLuong Case Is <= 0

ThueTNCN = 0

Case Is <= 5 ThueTNCN = ThucLuong * 0.05

Case Is <= 10 ThueTNCN = 5 * 0.05 + (ThucLuong - 5) * 0.1

Case Is <= 18

ThueTNCN = 5 * 0.05 + 5 * 0.1 + (ThucLuong - 10) * 0.15 Case Is <= 32

ThueTNCN = 5 * 0.05 + 5 * 0.1 + 8 * 0.15 + (ThucLuong - 18) * 0.2 Case Is <= 52

ThueTNCN = 5 * 0.05 + 5 * 0.1 + 8 * 0.15 + 14 * 0.2 + (ThucLuong - 32) * 0.25 Case Is <= 80

ThueTNCN = 5 * 0.05 + 5 * 0.1 + 8 * 0.15 + 14 * 0.2 + 20 * 0.25 + (ThucLuong - 52) * 0.3

Case Else ThueTNCN = 5 * 0.05 + 5 * 0.1 + 8 * 0.15 + 14 * 0.2 + 20 * 0.25 + 28 * 0.3 + (ThucLuong -

80) * 0.35 End Select

ThueTNCN = ThueTNCN * 10 ^ 6

End Function

Page 10: BÀI 1: VBA LÀ GÌ? TẠO MACRO ỨNG DỤNG CÁC HÀM TỰ …bluesofts.net/products/daotao/vba/coban/bai_1_vba_la_gi_macro_hoc... · Đào tạo thực hành Bluesofts Trung tâm

Đào tạo thực hành Bluesofts

Trung tâm đào tạo thực hành – Công ty cổ phần BLUESOFTS Địa chỉ: P1012, tầng 10 CT1A-ĐN2 Đường Hàm Nghi,

KĐT Mỹ Đình 2, Từ Liêm, Hà Nội

Điện thoại/Fax: 04.379.17200 Mobile: 096.555.6989

Website: http://bluesofts.net – Mail: [email protected]

VBA TRONG EXCEL CƠ BẢN Trung tâm Đào tạo Thực hành BLUESOFTS

Nguyễn Duy Tuân: 0904.210.337 10/12

Khi đã copy hàm tự tạo vào module trong VBA chúng ta có thể dùng chúng như những

hàm Excel trên sheet.

Page 11: BÀI 1: VBA LÀ GÌ? TẠO MACRO ỨNG DỤNG CÁC HÀM TỰ …bluesofts.net/products/daotao/vba/coban/bai_1_vba_la_gi_macro_hoc... · Đào tạo thực hành Bluesofts Trung tâm

Đào tạo thực hành Bluesofts

Trung tâm đào tạo thực hành – Công ty cổ phần BLUESOFTS Địa chỉ: P1012, tầng 10 CT1A-ĐN2 Đường Hàm Nghi,

KĐT Mỹ Đình 2, Từ Liêm, Hà Nội

Điện thoại/Fax: 04.379.17200 Mobile: 096.555.6989

Website: http://bluesofts.net – Mail: [email protected]

VBA TRONG EXCEL CƠ BẢN Trung tâm Đào tạo Thực hành BLUESOFTS

Nguyễn Duy Tuân: 0904.210.337 11/12

Cài đặt Add-ins trong Excel

Vào menu File->Options ta có màn hình

Chọn Add-ins, cửa sổ bên phải chọn nút “Go”. Tại cửa sổ Add-ins, chọn nút “Browse” để

tìm tới thư mục chứa tập tin xla, xll, xlam

Page 12: BÀI 1: VBA LÀ GÌ? TẠO MACRO ỨNG DỤNG CÁC HÀM TỰ …bluesofts.net/products/daotao/vba/coban/bai_1_vba_la_gi_macro_hoc... · Đào tạo thực hành Bluesofts Trung tâm

Đào tạo thực hành Bluesofts

Trung tâm đào tạo thực hành – Công ty cổ phần BLUESOFTS Địa chỉ: P1012, tầng 10 CT1A-ĐN2 Đường Hàm Nghi,

KĐT Mỹ Đình 2, Từ Liêm, Hà Nội

Điện thoại/Fax: 04.379.17200 Mobile: 096.555.6989

Website: http://bluesofts.net – Mail: [email protected]

VBA TRONG EXCEL CƠ BẢN Trung tâm Đào tạo Thực hành BLUESOFTS

Nguyễn Duy Tuân: 0904.210.337 12/12

Sau khi cài xong Add-in AccHelper – Đọc số thành chữ chúng ta có thể dùng các hàm

VND, USD để đọc số tiền thành chữ tiếng Việt hoặc Anh.

BÀI TẬP:

1. Tạo macro kẻ bảng theo mẫu bạn chọn

2. Gán macro lên menu.

3. Mở tập tin “Thuong theo doanh so.xlsx”. Copy các hàm tự tạo trong tập tin “thuong tho

doanh so.txt” và đảm bảo chạy được hàm “NhanThuong”. Lưu tành tập tin có định

dạng lưu được macro.