CÀI ADD-IN VBA VÀO EXCEL SỬ DỤNG CÁC HÀM CỦA PYTHON

CÁC NỘI DUNG CHÍNH
I. YÊU CẦU ĐẦU VÀO
1. CHUẨN BỊ NỘI DUNG
2. YÊU CẦU KIẾN THỨC
3. ĐỀ BÀI VÀ YÊU CẦU ĐẶT RA
II. CÁC BƯỚC THỰC HIỆN
Cài add-in VBA vào exceL sử dụng các hàm của Python
III. KẾT LUẬN
1. Trường hợp vận dụng 
2. Ưu điểm
3. Nhược điểm

I. YÊU CẦU ĐẦU VÀO

1. CHUẨN BỊ NỘI DUNG

Để bắt đầu bài học, các bạn cần có ít nhất 01 máy tính để bàn hoặc laptop, trong đó đã cài đặt:

a. Python

b. Visual Studio Code

c. Microsoft Excel từ 2007 trở lên để tối ưu việc lập trình bằng python.

d. Teamviewer hoặc Ultraviewer để được các giảng viên và trợ giảng của trang web Pyan.vn hỗ trợ 24/7 nếu các bạn bị vướng mắc trong quá trình code.

2. YÊU CẦU KIẾN THỨC

Đối với bài học này, các bạn cần nẵm vững các kiến thức sau:

a. Cách sử dụng vòng lặp FOR

b. Cách sử dụng hàm điều kiện IF

c. Cách sử dụng vòng lặp WHILE

d. Nếu chưa nắm vững kiến thức, các bạn có thể trao đổi thêm với các giảng viên và trợ giảng của trang web Pyan.vn để được hỗ trợ.

3. ĐỀ BÀI VÀ YÊU CẦU ĐẶT RA

a. Đề bài:

Trong file excel, cột A là danh sách các vị trí nhân sự trong công ty, cột B là danh sách email tương ứng với các vị trí nhân sự trong cột A. Tại cột D là 2 địa chỉ email bất kỳ mà chúng ta lấy từ cột B.

b. Yêu cầu đặt ra:

Yêu cầu đặt ra là khi ta bấm thực thi code trong file script python, thì tại cột E sẽ trả ra vị trí nhân viên trong công ty tương ứng với email tại cột D, căn cứ vào giá trị tham chiếu là cột A và cột B.

Bảng dữ liệu ban đầu:

Bảng dữ liệu thu được sau khi code hoàn chỉnh

II. CÁC BƯỚC THỰC HIỆN

Cài add-in VBA vào exceL sử dụng các hàm của Python

Trong video lần trước, chúng tôi đã giới thiệu với các bạn cách để thêm chức năng add-in python vào excel. Với cách thức đó, chúng ta sẽ tạo được 1 folder tên là my project1 có chứa file excel và file script python trùng tên với nhau. Trong bài học này, chúng tôi sẽ giới thiệu với các bạn thêm một cách khác để thêm chức năng add-in python vào excel, trong trường hợp chúng ta có 1 file excel và 1 file script python riêng biệt. Hai file này không cùng tên và được chúng ta tải về từ nguồn trên internet. File script python có tên là my module chấm py, file excel có tên là sample chấm xlsx. Trước hết, chúng tôi sẽ giới thiệu sơ lược về nội dung của file script python và file excel mà chúng ta tải về này. Trong file excel, cột A là danh sách các vị trí nhân sự trong công ty, cột B là danh sách email tương ứng với các vị trí nhân sự trong cột A. Tại cột D là 2 địa chỉ email bất kỳ mà chúng ta lấy từ cột B. Yêu cầu đặt ra là khi ta bấm thực thi code trong file script python, thì tại cột E sẽ trả ra vị trí nhân viên trong công ty tương ứng với email tại cột D, căn cứ vào giá trị tham chiếu là cột A và cột B. Bây giờ, ta sẽ bấm thực thi code trong script python, kết quả trả ra là tại cột E đã được lấp đầy các vị trí nhân viên tương ứng với địa chỉ email tại cột D, căn cứ vào giá trị tham chiếu là cột A và cột B. Sau đây, chúng tôi sẽ hướng dẫn các bạn cách để thêm chức năng add-in python vào excel trong trường hợp này. Đầu tiên, ta lưu file excel từ đuôi xlsx chuyển sang đuôi xlsm. Như ở ví dụ này ta sẽ có file Sample chấm xlsm. Tiếp đó, ta Add module xlwings chấm bas vào VBA của file Sample chấm xlsm. Để làm được điều này, trước hết, ta ấn tổ hợp phím Windows cộng R, và gõ cmd, các bạn bấm enter. Trong hộp thoại Command Prompt hiện ra, ta gõ lệnh python. Sau khi lệnh chạy xong, ta gõ tiếp lệnh import xlwings và lệnh như trên video, các bạn lưu ý là có 2 dấu gạch dưới ở đầu và đuôi chữ path. Kết quả trả ra chính là đường dẫn tới thư mục có chứa file xlwings chấm bas. 

Bây giờ, trong file sample chấm xlsm, ta ấn tổ hợp phím Alt cộng F11. Trong cửa sổ VBA vừa mới hiện ra, ta chọn File, chọn Import File. Tiếp đó, một hộp thoại hiện ra, ta sẽ căn cứ theo đường dẫn trong file Command Prompt mà trỏ đường dẫn đến thư mục có chứa file xlwings chấm bas và chọn file xlwings chấm bas, sau đó ta ấn Open. Kết quả sau khi Import ta kiểm tra tại mục Module sẽ có chứa Module xlwings1 như hình ảnh trên màn hình là ta đã import thành công. Bây giờ, ta sẽ mở script python may module lên. Để liên kết python với VBA thì file python chúng ta sẽ tạo ra một function. Ví dụ ở đây đặt tên là function main. Tiếp theo, ta thay thế công thức của biến wb từ tên workbook cụ thể thành caller. Ở đây function caller sẽ làm nhiệm vụ lấy file workbook khi được vba gọi. Đối với các lệnh còn lại, ta vẫn giữ nguyên cách lập trình như cũ, chỉ khác là ta sẽ lùi dòng toàn bộ khối lệnh về bên phải để phù hợp với hàm main. 

Bây giờ, ta sẽ tạo module VBA trong file Sample chấm xlsm. Trước hết, ta Mở file excel Sample chấm xlsm lên, sau đó ta ấn tổ hợp phím Alt+F11, trong cửa sổ VBA vừa hiện lên, ta click chuột phải vào mục Modules. Ta chọn Insert, sau đó là Module. Kết quả sẽ tạo ra 1 Module nữa tên Module 1. Trong module này, ta tạo một code như sau. Dòng đầu tiên là Sub PythonCode, ở đây có ý nghĩa ta tạo ra 1 Macro có tên là PythonCode. Dòng lệnh thứ 2 là RunPython import my module chấm phẩy my module chấm main. Trong đó RunPython là dòng lệnh để chạy lệnh python. My module chính là tên file python trong bài. Lệnh my module chấm main dùng để chạy function main trong file python. Trở lại với file excel mẫu, ta sẽ Tạo nút ấn Check và gán Module VBA. 

Hoàn toàn tương tự bài học trước, tại mục Form Controls, ta chọn Button. Ta chọn vị trí đặt Button ngay sau đó sẽ hiện ra hộp thoại yêu cầu gán macro vào. Ta chọn macro PythonCode và ấn OK. Tiếp đó, ta Ấn chuột phải vào Button đó, chọn Edit Text, Sửa thành chữ Check. Sau đó Ấn nút Check ta được kết quả như khi chúng ta thực thi code với file script python. Như vậy, chúng tôi đã hướng dẫn các bạn thêm một cách khác để thêm chức năng add-in python vào excel. Tùy theo tình hình thực tế công việc mà các bạn lựa chọn sử dụng các cách thức, mà chúng tôi đã hướng dẫn để áp dụng sao cho hợp lý.

III. KẾT LUẬN

1. Trường hợp vận dụng

Tạo ra phím thực thi code ngay trên file excel, qua đó giúp việc tự động hóa diễn trong file excel diễn ra đơn giản hơn.

2. Ưu điểm

Không cần phải mở file script python để thực thi code như trước.

3. Nhược điểm

Do tính chất phức tạp của bảng code, cần hiểu rõ cách sử dụng để vận dụng vào công việc.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *