Thực Hành Viết Prompt Tự Động Đổi Màu Số (Hướng Dẫn Từng Bước) - Phần 2

Bài viết này gồm 2 phần:
Phần 1: Thực Hành Viết Prompt Tự Động Đổi Màu Số Trên Apps Script
Phần 2: Thực Hành Viết Prompt Tự Động Đổi Màu Số Trên VBA

3. Thực Hành Viết Prompt Tự Động Đổi Màu Số Trên VBA

3.1. “Don't reinvent the wheel” - Đừng cố phát minh lại cái bánh xe

(1) Prompt 6

Như vậy là chúng ta đã thực hành xong với Google Sheets. Hãy tiếp tục tìm hiểu quy trình viết prompt đổi màu số trên Microsoft Excel. Với Microsoft Excel, bạn sẽ sử dụng ngôn ngữ lập trình Visual Basic For Applications hay gọi tắt là VBA.

Đố các bạn chúng ta sẽ bắt đầu từ đâu với nhiệm vụ này? Đúng rồi. Hãy nhớ quy tắc số 2: Đừng cố phát minh lại cái bánh xe. Chúng ta sẽ bắt đầu với Prompt số 3 của Google Apps Script ở trên thay vì viết mới. Vì mục tiêu của video này là chia sẻ quy trình tạo prompt trong tập trước nên tạm thời chúng ta sẽ bỏ qua cập nhật của prompt 4.

Ở đây chúng ta đang cần tạo đoạn mã cho VBA nên Linh sẽ điều chỉnh prompt 3 một chút. Đổi yêu cầu từ “viết Google Apps Script" thành “viết code cho Visual Basic For Applications” và trong “Google Sheets” thành trong “Microsoft Excel”.

Nhấp vào xem Câu lệnh (prompt) mẫu 7
Hãy viết code cho Visual Basic For Applications cho phép tôi nhấp vào nút menu tùy chỉnh "Number color" trong Microsoft Excel để tự động đổi màu chữ số trong 1 sheet, theo quy tắc sau:
#4986e8 cho số được nhập vào;
#9900ff cho số được tạo bởi công thức;
#6aa84f cho số có cấu trúc "= 1 ô bất kỳ", ví dụ =A1;
#ff00ff cho số đã lấy dữ liệu từ một ô có sẵn trong sheet khác với sheet hiện tại, ví dụ ='Sheet 2'!A1;
Những ô còn lại không đổi màu.

Linh sẽ sao chép đoạn mã mà ChatGPT trả về sau khi chạy câu lệnh trên và dán vào VBA trong Excel. Linh cũng đã chia sẻ về quy trình này trong bài viết trước.

Có đến 2 Macro trong giao diện VBA

Nhìn vào bảng Macro, đang có đến 2 Macro là Add Custom Menu và Change Number Color. Macro Add Custom Menu không cần thiết, Linh sẽ xóa bỏ phần yêu cầu này trong prompt. Bây giờ Linh sẽ chạy Macro đổi màu số.

Kết quả đổi màu số từ Prompt 6

Nhìn tổng quan thì các ô số chỉ hiện màu xanh dương và màu tím. Lần lượt là màu của số được nhập vào và số tạo bởi công thức.

  • Trước tiên, Linh sẽ kiểm tra các ô màu xanh dương. Tất cả các ô này đều là số được nhập vào trực tiếp nên màu này đang hiển thị đúng. Phần prompt này không cần thay đổi.
  • Tiếp theo là màu tím. Các bạn có nhận ra vấn đề ở đây không? Tất cả các ô bắt đầu bằng dấu “=” đều được Excel nhận diện là công thức và sẽ đổi thành màu tím. Chúng ta đã gặp vấn đề tương tự khi viết prompt cho Apps Script. Mặc dù trong prompt đã có ví dụ mẫu cụ thể nhưng Excel vẫn chưa hiểu được.

Để xử lý vấn đề này, với ô màu xanh lá và màu hồng, Linh sẽ thêm mô tả là: Không có phép tính hay công thức khác trong đó.

  • HỘP HỌC HỎI

Tới đây, sẽ có bạn hỏi là: Làm sao em biết chỗ này phải thêm “Không có phép tính hay công thức khác trong đó”? Câu trả lời là phụ thuộc kinh nghiệm và logic của bạn. Chúng ta thử các khả năng mà mình thấy là hợp lý. Và nếu bạn không biết sửa prompt như thế nào, thì hãy trình bày vấn đề và hỏi ngược lại ChatGPT để nó đề xuất câu prompt mới cho bạn. Sau đó bạn sẽ chạy đoạn mã và tiếp tục thử nghiệm.

Sau khi đã chỉnh sửa, câu lệnh mới sẽ trở thành như thế này.

(2) Prompt 7

Nhấp vào xem Câu lệnh (prompt) mẫu 8
Hãy viết code cho Visual Basic For Applications cho phép tôi tự động đổi màu chữ số trong 1 sheet của Microsoft Excel, theo quy tắc sau:
#4986e8 cho số được nhập vào;
#9900ff cho số được tạo bởi công thức;
#6aa84f cho số có cấu trúc "= 1 ô bất kỳ" và không có phép tính hay công thức khác trong đó, ví dụ =A1;
và #ff00ff cho số đã lấy dữ liệu từ một ô có sẵn trong sheet khác với sheet hiện tại, và không có phép tính hay công thức khác trong đó, ví dụ ='Sheet 2'!A1;
Những ô còn lại không đổi màu.

Và đây là kết quả khi khởi chạy đoạn mã từ prompt mới. 

Kết quả đổi màu số từ Prompt 7

  • Hãy kiểm tra các ô màu. Đầu tiên là màu xanh dương. Các số này vẫn đổi màu đúng giống lần đầu.
  • Tiếp theo là các số màu xanh lá. Trước đó là màu tím, bây giờ thì 3 ô số lấy dữ liệu từ một ô có sẵn trong bảng tính hiện tại đã đổi thành màu xanh lá.
  • Ô màu hồng là số lấy dữ liệu từ một ô có sẵn trong bảng tính khác với bảng tính hiện tại cũng đã đổi màu đúng.
  • Phần còn lại là các ô công thức màu tím. Như các bạn thấy là cũng đúng rồi nha.

Vậy là tất cả các màu đã được đổi đúng như yêu cầu ban đầu. Giờ Linh sẽ thực hiện bước cuối cùng là đổi các ô màu tím về lại màu đen cho đúng quy tắc 4 màu. Để thực hiện điều này, bạn chỉ cần đổi mã màu HEX của màu tím sang mã màu đen trong prompt và dán vào ChatGPT để tạo đoạn mã mới là được.

Nhấp vào xem Câu lệnh (prompt) mẫu 9
Hãy viết code cho Visual Basic For Applications cho phép tôi tự động đổi màu chữ số trong 1 sheet của Microsoft Excel, theo quy tắc sau:
#4986e8 cho số được nhập vào;
#000000 cho số được tạo bởi công thức;
#6aa84f cho số có cấu trúc "= 1 ô bất kỳ" và không có phép tính hay công thức khác trong đó, ví dụ =A1;
#ff00ff cho số đã lấy dữ liệu từ một ô có sẵn trong sheet khác với sheet hiện tại, và không có phép tính hay công thức khác trong đó, ví dụ ='Sheet 2'!A1;
Những ô còn lại không đổi màu.

Sau khi khởi chạy đoạn mã VBA mới thì đây là kết quả mà Linh nhận được. Tất cả các số màu tím đã chuyển sang màu đen.

Kết quả sau khi đổi mã HEX màu tím thành mã HEX màu đen

Ở bước này, Linh đã thử thao tác tương tự với Google Apps Script là không cần tạo prompt mới mà sẽ sửa trực tiếp mã màu tím thành đen trong đoạn mã đã chạy đúng. Tuy nhiên, trong Excel, bạn sẽ cần đổi cả mã màu RGB và mã màu HEX của màu tím thành màu đen thì đoạn mã mới chạy đúng. Nếu bạn không quá quen với các mã màu thì hãy làm thêm 1 bước tạo prompt như hướng dẫn ở trên sẽ đơn giản hơn.

3.2. “There is no best, there is always a better” - Không có prompt tốt nhất, sẽ luôn có prompt tốt hơn

Vậy là các bạn vừa học được cách tạo prompt tự động đổi màu số trong Microsoft Excel. Thấy là không khó quá đúng không? Bây giờ chúng ta sẽ đến phần nâng cao.

Trong bài viết trước, Linh đã chỉ các bạn cách lưu Macro để sử dụng cho những lần sau. Nhưng cách này vẫn còn hơi thủ công. Ở phần bình luận, bạn Ten Ten đã chia sẻ một cách để không cần phải mở file Macro lên mỗi lần thao tác. Linh đã thử làm theo và thành công. Cảm ơn Ten Ten. Bây giờ, Linh sẽ chia sẻ từng bước cho các bạn học hỏi cùng Linh luôn nhe.

Bình luận chia sẻ từ bạn Ten Ten

(1) Đầu tiên, trong file Excel mà chúng ta vừa hoàn thành lúc nãy, bạn chọn Record Macro, đổi Macro name thành “HighlightNumbers", ở phần Store Macro in, chọn Personal Macro Workbook và nhấn OK. Lúc này cửa sổ Record Macro sẽ đóng lại, bạn nhấn vào Stop Recording
(2) Tiếp theo, bạn vào lại Visual Basic. Ở ô bên trái trong giao diện, bạn sẽ thấy phần VBA Project (Personal.XLSB). Hãy nhấp vào folder Module để mở ra Module 1. Sau đó bạn nhấp hai cái vào Module 1 để mở ra bảng mã. Tại bảng mã này, hãy xóa đi đoạn mã đang có và thay thế bằng đoạn mã VBA hoàn chỉnh bạn vừa dùng để đổi màu số ở trên
(3) Cuối cùng, tắt cửa sổ này và nhấn SAVE để lưu lại. Đây là bước quan trọng nha các bạn. Các bạn cần phải nhấn lưu trước khi thoát ra để Macro này được ghi nhớ. Sau khi nhấn lưu, bạn quay trở lại file Excel đang thao tác. Vào lại Marcos, bạn sẽ thấy có một Macro được lưu lại như thế này

Macro đã được lưu lại

Giờ thì bạn có thể sử dụng Macro đổi màu số này khi thao tác trên bất kỳ file dữ liệu nào. Bạn chỉ cần mở file ra, trên thành Developer chọn Macro. Sau đó trong cửa sổ Macro, bạn nhấn chọn Macro đã lưu lại này và khởi chạy là được.

Tương tự nếu có nhiều tác vụ khác và có những Macro khác nhau, bạn cũng có thể lưu lại như các bước trên để sử dụng nhanh chóng khi cần.

Linh thấy rất thú vị. Mình sẽ luôn học được điều gì đó mới khi chia sẻ cùng nhau. Và dần dần, chúng ta sẽ tối ưu những nhiệm vụ mình để làm nó tốt hơn, và tốt hơn nữa. Nếu có chia sẻ nào thêm, các bạn hãy tiếp tục bình luận nha. Linh và đội ngũ đều đọc từng bình luận của các bạn để nâng cao chất lượng nội dung của mình.

Lời Kết

Điều Linh muốn các nhớ nhất sau bài viết này là gì? Không phải là 7 câu prompt Linh vừa chia sẻ. Không nên học thuộc prompt nha các bạn 😀. Mục tiêu của Linh khi thực hiện nội dung này là muốn cùng các bạn học cách xử lý vấn đề và tư duy linh hoạt.
Hãy nhìn lại 3 quy tắc quan trọng khi viết prompt. Cùng Linh xem lại một lần nữa nha.
(1) Nghĩ lớn, và bắt đầu nhỏ
(2) Đừng cố phát minh lại cái bánh xe
(3) Không có prompt tốt nhất, sẽ luôn có prompt tốt hơn
3 quy tắc này không chỉ đúng khi viết prompt mà rất giúp ích khi bạn nghĩ về bất kì nhiệm vụ hay mục tiêu nào.
Thật sự thì không có con đường tắt nào để đi đến mục tiêu. Điều quan trọng là bạn phải bắt tay vào làm, phải thực hành, phải sai, và tìm cách sửa sai. Bởi vì trong lúc làm, bạn không chỉ đầu tư vào mục tiêu, mà quan trọng hơn tất cả, bạn đang làm dày thêm kinh nghiệm của mình. Bạn đang đầu tư vào chính bản thân mình.
Skills Bridge là công ty đào tạo cung cấp các chương trình phát triển kỹ năng cho các bạn trẻ, doanh nghiệp vừa và nhỏ cùng các công ty đa quốc gia. Linh thành lập công ty với mục tiêu sử dụng 25 năm kinh nghiệm của mình cùng các chuyên gia khác trong nhiều lĩnh vực để hỗ trợ các bạn trẻ thành công trong sự nghiệp.
Để biết thêm chi tiết về các chương trình đào tạo và phát triển đa dạng hiện có của Skills Bridge, hãy truy cập link này.

Viết bởi

Có hơn 24 năm kinh nghiệm trong lĩnh vực tài chính, tiếp thị và vận hành. Những nội dung của Thái Vân Linh cung cấp các công cụ và cảm hứng nhằm giúp các bạn trẻ Việt Nam thăng tiến trong công việc và khám phá trọn vẹn tiềm năng của mình.

Skills Bridge là công ty đào tạo cung cấp các chương trình phát triển kỹ năng cho các bạn trẻ, doanh nghiệp vừa và nhỏ cùng các công ty đa quốc gia. Linh thành lập công ty với mục tiêu sử dụng 25 năm kinh nghiệm của mình cùng các chuyên gia khác trong nhiều lĩnh vực để hỗ trợ các bạn trẻ thành công trong sự nghiệp.
Để biết thêm chi tiết về các chương trình đào tạo và phát triển đa dạng hiện có của Skills Bridge, hãy truy cập link này.

Viết bởi

Có hơn 24 năm kinh nghiệm trong lĩnh vực tài chính, tiếp thị và vận hành. Những nội dung của Thái Vân Linh cung cấp các công cụ và cảm hứng nhằm giúp các bạn trẻ Việt Nam thăng tiến trong công việc và khám phá trọn vẹn tiềm năng của mình.