Đây là các dự án trong đó công việc được thực hiện ngay tại nơi người dùng vốn làm việc — trong Excel, Google Sheets, PowerPoint và Outlook: bảng tính tự gọi API và ghi kết quả, bảng giá được sắp xếp lại chỉ bằng một lần chạy, dữ liệu được lấy từ cơ sở dữ liệu qua kết nối ODBC, PowerPoint thay thế hình ảnh, còn Outlook tự lưu tệp đính kèm và theo dõi thư. Thay vì phải học một chương trình mới, người dùng nhận được một nút hoặc tập lệnh ngay trong công cụ họ sử dụng hằng ngày. Tôi thực hiện những công việc này trong dịch vụ phát triển tiện ích Office.
Tiện ích Excel gửi ID đến API và ghi kết quả
Thực hiện trong quý III năm 2021.
Vấn đề
Khách hàng có một danh sách ID trong Excel — tối đa khoảng năm mươi dòng, thông thường chỉ năm hoặc sáu — cần gửi đến API rồi ghi kết quả trở lại cùng bảng tính. Một tập lệnh đã có thể lấy dữ liệu ở định dạng JSON, nhưng các giá trị phải được nhập thủ công vào Postman. Khách hàng cần một giải pháp đơn giản tự làm toàn bộ quy trình: đọc ID, gọi API và ghi phản hồi mà không phải cài thêm phần mềm. Khách hàng đề xuất cURL nhưng cũng sẵn sàng sử dụng phương án khác.
Giải pháp
Một tiện ích VSTO cho Excel đã được xây dựng với nút trên thanh công cụ, thực hiện toàn bộ quy trình ngay trong bảng tính:
- đọc ID: tiện ích lấy danh sách ID từ bảng một cách đáng tin cậy;
- tự động gọi API: lần lượt xử lý từng ID, gọi API và thu thập kết quả;
- ghi vào cùng tệp: dữ liệu nhận từ API được ghi trở lại bảng Excel ban đầu;
- dễ sử dụng: mọi thao tác được khởi chạy trong Excel, không cần nhập thủ công hay dùng công cụ trung gian.
Công nghệ sử dụng
- VSTO (Visual Studio Tools for Office): tiện ích Excel có nút trên thanh công cụ.
- VB.NET và .NET Framework: ngôn ngữ và môi trường của tiện ích.
- JSON: định dạng phản hồi của API.
Kết quả
Thay vì nhập thủ công trong Postman, chỉ với một cú nhấp trong Excel, người dùng nhận được phản hồi API cho toàn bộ danh sách và kết quả được ghi vào cùng bảng tính.
Sắp xếp lại bảng giá trong Excel bằng VBA
Thực hiện trong quý II năm 2021.
Vấn đề
Khách hàng có một bảng giá lớn, trong đó số lượng được xếp theo chiều dọc, mỗi mức nằm trên một dòng riêng. Một số sản phẩm có nhiều mức giá tùy theo số lượng, trong khi một số khác chỉ có một mức giá. Đối tác của khách hàng yêu cầu cách trình bày theo chiều ngang, với một cột riêng cho từng số lượng. Vì không có quy luật nhất quán giữa các sản phẩm, việc sắp xếp thủ công không phù hợp và cần một phương pháp linh hoạt.
Giải pháp
Một quy trình tự động bằng VBA đã được xây dựng để định dạng lại bảng giá:
- định dạng linh hoạt: tập lệnh nhận biết số lượng mức giá khác nhau của từng sản phẩm và điều chỉnh cách trình bày tương ứng;
- trình bày theo chiều ngang: mỗi số lượng có một cột riêng theo yêu cầu của đối tác;
- khả năng thích ứng: giải pháp xử lý cả sản phẩm có một mức giá lẫn sản phẩm có nhiều mức giá.
Công nghệ sử dụng
- Microsoft Excel: nền tảng.
- VBA: tự động hóa việc sắp xếp lại dữ liệu.
Kết quả
Bảng giá được chuyển sang định dạng đối tác yêu cầu chỉ bằng một lần chạy tập lệnh, bất kể mỗi sản phẩm có bao nhiêu mức giá.
Bảng Excel lấy dữ liệu và làm nổi bật thay đổi
Thực hiện trong quý II năm 2021.
Vấn đề
Khách hàng cần một bảng Excel lấy dữ liệu cho nhãn sản phẩm từ trang dữ liệu dựa trên mã sản phẩm. Dữ liệu phải được sao chép thực sự, thay vì chỉ tham chiếu như VLOOKUP, vì người dùng cần chỉnh sửa ngay tại chỗ. Mọi thay đổi phải được tô màu để dễ theo dõi, còn trang dữ liệu cần được ẩn để người dùng cuối chỉ nhìn thấy trang chính.
Giải pháp
- lấy dữ liệu trực tiếp: dữ liệu được sao chép từ trang dữ liệu để có thể chỉnh sửa trong trang chính mà không phụ thuộc vào VLOOKUP;
- theo dõi thay đổi: mỗi thay đổi đối với dữ liệu đã lấy tự động làm đổi màu ô;
- ẩn trang dữ liệu: người dùng làm việc trong một trang chính rõ ràng, gọn gàng.
Công nghệ sử dụng
- Microsoft Excel: các tính năng nâng cao để lấy dữ liệu và tạo tương tác.
Kết quả
Nhãn được điền bằng cách nhập mã sản phẩm, dữ liệu có thể chỉnh sửa tại chỗ và mọi thay đổi đều nhận biết ngay qua màu sắc.
Quản lý kết nối ODBC trong Excel bằng VBA
Thực hiện trong quý IV năm 2020.
Vấn đề
Khách hàng cần một giải pháp VBA ngắn gọn, rõ ràng để quản lý kết nối ODBC trong sổ làm việc đang mở: xóa toàn bộ kết nối hiện có, tạo mười kết nối mới trong vòng lặp dựa trên các chuỗi kết nối lưu ở một trang tính, lấy dữ liệu qua các kết nối đó rồi điền vào mười trang tính mới. Việc dùng vòng lặp là yêu cầu bắt buộc để sau này có thể dễ dàng tăng số lượng kết nối.
Giải pháp
- quản lý kết nối ODBC: các kết nối hiện có được xóa và thiết lập lại khi cần;
- kết nối trong vòng lặp: số lượng kết nối có thể tăng mà không cần thay đổi logic;
- lấy và tổ chức dữ liệu: dữ liệu được truy xuất và sắp xếp trước khi ghi;
- điền trang tính: các trang tính mới được tạo tự động và điền dữ liệu.
Công nghệ sử dụng
- Microsoft Excel: nền tảng.
- VBA: tự động hóa kết nối và ghi dữ liệu.
- ODBC: kết nối với các nguồn dữ liệu.
Kết quả
Chỉ với một lần chạy, sổ làm việc kết nối với tất cả nguồn và điền dữ liệu; công việc được bàn giao đúng hạn.
Nhận xét của khách hàng
★★★★★5/5“Dejan thể hiện kỹ năng và độ chính xác xuất sắc, đồng thời bàn giao mọi thứ đúng hạn. Cảm ơn Dejan!”
Google Apps Script tìm kiếm và sao chép dữ liệu giữa các trang tính
Thực hiện trong quý I năm 2022.
Vấn đề
Khách hàng có ba trang tính trong một tài liệu Google Sheets. Trang thứ nhất là bảng chính, gồm các cột cố định và từ 2.500 đến 3.500 dòng được khách hàng bổ sung thủ công. Trang thứ hai chứa dữ liệu cần tìm trong trang thứ nhất, được cập nhật hằng ngày và có cấu trúc cột khác. Trang thứ ba cần được điền bằng dữ liệu từ trang thứ nhất theo những gì được yêu cầu trong trang thứ hai. Công việc này lặp lại mỗi ngày.
Giải pháp
Một Google Apps Script đã được xây dựng để tìm kiếm và sao chép dữ liệu giữa các trang tính:
- tìm kiếm linh hoạt: dữ liệu từ trang thứ hai được tìm trong trang thứ nhất có kích thước lớn hơn;
- sao chép kết quả: dữ liệu tìm thấy trong trang thứ nhất được chuyển sang trang thứ ba;
- thích ứng với số dòng: tập lệnh hoạt động bất kể các trang có bao nhiêu dòng và duy trì tính nhất quán của dữ liệu.
Công nghệ sử dụng
- Google Apps Script: tự động hóa việc tìm kiếm và sao chép trong Google Sheets.
- Google Sheets: các bảng dùng để quản lý dữ liệu.
Kết quả
Tập lệnh đảm nhận một phần đáng kể công việc hằng ngày của khách hàng, và khách hàng đánh giá kết quả là hoàn hảo.
Nhận xét của khách hàng
★★★★★5/5“Mọi việc đều diễn ra tốt đẹp. Thực ra, kết quả hoàn hảo. Tôi nhiệt tình giới thiệu Dejan.”
Tiện ích PowerPoint thay thế hình ảnh
Thực hiện trong quý III năm 2023.
Vấn đề
Người dùng PowerPoint cần một cách thay thế hình ảnh trong bản trình chiếu sao cho ảnh mới giữ nguyên vị trí của ảnh cũ, đồng thời có thể chọn giữ hoặc thay đổi tỷ lệ ảnh. Giải pháp không được là macro phải chuyển từ tệp này sang tệp khác, mà phải là tiện ích dễ phân phối và cài đặt; vì vậy cũng cần có chương trình cài đặt đi kèm.
Giải pháp
Một tiện ích VSTO cho PowerPoint đã được xây dựng cùng chương trình cài đặt:
- thay ảnh và giữ nguyên vị trí: ảnh mới được đặt chính xác vào vị trí của ảnh cũ;
- tùy chọn tỷ lệ: có thể giữ nguyên hoặc thay đổi tỷ lệ khung hình;
- dễ phân phối cho người dùng: tiện ích được thiết kế để tải xuống và cài đặt đơn giản;
- luôn sẵn sàng: sau khi cài đặt, tiện ích xuất hiện mỗi khi mở PowerPoint;
- nút trên thanh công cụ: các lệnh nằm trên thanh công cụ PowerPoint được tạo bằng trình thiết kế trực quan.
Công nghệ sử dụng
- Ngôn ngữ lập trình C# (programiranje.co.rs): ngôn ngữ của tiện ích, được chọn theo đánh giá của lập trình viên.
- VSTO (Visual Studio Tools for Office): tiện ích cho PowerPoint.
- Chương trình cài đặt: phân phối tiện ích đến người dùng.
Kết quả
Người dùng thay hình ảnh trong bản trình chiếu chỉ bằng một cú nhấp mà không phải căn chỉnh lại vị trí; tiện ích được cài đặt theo cùng một cách trên máy của từng người.
Nhận xét của khách hàng
★★★★★5/5“Trao đổi tuyệt vời, bàn giao hoàn hảo.”
Tập lệnh Outlook lưu tệp đính kèm và chèn liên kết
Thực hiện trong quý II năm 2021.
Vấn đề
Khách hàng sử dụng nhiều lịch Outlook để theo dõi công việc và lập báo cáo. Người dùng cập nhật trạng thái công việc qua biểu mẫu và kéo nhiều loại tệp vào biểu mẫu lịch — PDF, hình ảnh, tài liệu Word và thư. Việc nhúng trực tiếp các tệp như vậy gây ra vấn đề, nên yêu cầu là tự động lưu tệp được kéo vào ổ đĩa mạng và để lại liên kết tới tệp đã lưu trong biểu mẫu.
Giải pháp
Một tập lệnh VBA cho Outlook đã được xây dựng để quản lý các tệp trong biểu mẫu lịch:
- nhận diện tệp: tập lệnh phát hiện khi người dùng kéo tệp vào biểu mẫu lịch;
- lưu tệp: tệp được tự động lưu vào ổ đĩa mạng đã định trước;
- liên kết thay cho tệp: tệp được chèn trong biểu mẫu được thay bằng liên kết tới tệp đã lưu;
- tổ chức thư mục: các thư mục được tạo theo tiêu chí quy định để dễ tìm tệp.
Công nghệ sử dụng
- VBA cho Outlook: tự động hóa ngay trong Outlook.
- Ổ đĩa mạng: nơi lưu các tệp.
Kết quả
Các biểu mẫu lịch giữ được dung lượng nhỏ và không chứa tệp nhúng; toàn bộ tệp đính kèm được lưu gọn gàng trên ổ đĩa mạng và có thể truy cập qua liên kết.
Tập lệnh Outlook theo dõi thư đến
Thực hiện trong quý IV năm 2020, với các bổ sung trong quý I năm 2021.
Vấn đề
Khách hàng muốn ghi nhận mọi thư đến trong Outlook và kiểm tra hằng ngày xem thư đã được xử lý thế nào: đang nằm trong thư mục nào, đã được trả lời chưa, có được đánh dấu để xử lý tiếp hay không và có thư nào bị xóa không. Mục tiêu là quản lý thư một cách có hệ thống và xác định rõ trách nhiệm đối với từng thư.
Giải pháp
Một tập lệnh VBA tích hợp trong Outlook đã được xây dựng:
- ghi nhận thư: mọi thư đến được tự động ghi lại để không thư nào bị bỏ sót;
- kiểm tra trạng thái hằng ngày: mỗi 24 giờ, tập lệnh kiểm tra thư đang ở thư mục nào, đã được trả lời chưa và có được đánh dấu để xử lý tiếp hay không;
- kiểm tra tính đầy đủ: nếu một thư bị thiếu, tập lệnh phát hiện và gửi cảnh báo;
- làm nổi bật: thư bị xóa hoặc thất lạc được tự động đánh dấu để người dùng chú ý.
Công nghệ sử dụng
- VBA cho Outlook: theo dõi thư mà không làm gián đoạn công việc hằng ngày của người dùng.
Kết quả
Với mỗi thư đến, người dùng biết thư đang ở đâu và đã được xử lý thế nào; thư vô tình bị xóa hoặc di chuyển được phát hiện nhanh chóng.
Bạn cần tự động hóa trong Excel hoặc Outlook?
Phạm vi công việc, cách xác định giá và quy trình thực hiện được trình bày tại trang phát triển tiện ích Office. Xem các tiện ích lớn hơn trong các dự án về tiện ích Outlook tự động hóa thư và lịch, tiện ích Outlook tích hợp API và tiện ích Word; xem giải pháp tự động hóa website từ Excel và Word tại trang tự động hóa trình duyệt và thu thập dữ liệu web.
Để Lại Bình Luận