kiến thức Chia sẻ macro Excel cho người khác qua internet

NguyenDang95

Senior Member
Trong công việc, đôi khi người dùng có một macro hay ho nào đó và muốn chia sẻ nó cho đồng nghiệp. Thông thường, người dùng có thể sao chép macro đó và gửi cho đồng nghiệp qua email hay usb flash chẳng hạn, tuy nhiên với việc VBA không thể chạy trên nền web, chúng ta có thể nhờ cậy vào một công cụ khác của Microsoft: Office Scripts.

Để sử dụng được tính năng này, người dùng cần đăng ký một trong những thuê bao dưới đây:
  • Office 365 Business
  • Office 365 Business Premium
  • Office 365 ProPlus
  • Office 365 ProPlus for Devices
  • Office 365 Enterprise E3
  • Office 365 Enterprise E5
  • Office 365 A3
  • Office 365 A5
Trình tự như sau:
1. Đưa tập tin Excel lên OneDrive, mở tập tin đó trên trình duyệt (Excel on the web), sau đó tiến hành chuyển đổi macro VBA sang Office Scripts (tất nhiên là phải viết mã thủ công rồi)
2. Nhấp chuột vào dấu "..." nằm bên phải trình soạn thảo code, sau đó chọn Add Button. Một nút bấm sẽ xuất hiện trong bảng tính.

1663857037558.png


3. Chia sẻ tập tin Excel. Người được chia sẻ khi mở tập tin Excel đó bằng ứng dụng Excel có thể sử dụng nút bấm đã thêm vào để chạy macro. Nhấp chuột phải vào nút bấm, chọn View Script để xem code macro (chỉ có thể xem).

1663857053969.png


Thông tin bên lề:
Ra mắt từ năm 2019, Office Scripts là sản phẩm của Microsoft được viết bằng ngôn ngữ TypeScript với chức năng tương tự như VBA nhưng có thể chạy trên nền web, điều mà VBA không thể làm được. Kết hợp với Power Automate, người dùng có thể tạo ra những macro phục vụ nhiều mục đích khác nhau cho công việc.
Lưu ý: Do Office Scripts vẫn đang tiếp tục được phát triển, cho nên không phải tính năng nào của VBA cũng có trên Office Scripts.

Tham khảo:

Run Office Scripts in Excel with buttons​

https://learn.microsoft.com/en-us/office/dev/scripts/develop/script-buttons

Xem thêm:

Office Scripts in Excel​

https://learn.microsoft.com/en-us/office/dev/scripts/overview/excel
 
Last edited:
copy code ko được à thím.
t đôi khi tìm code trên youtube họ cũng bỏ code vào phần chú thích rồi mình copy là xong về chạy là được.
 
Đây là một cách để chạy macro trên web thôi thím, là công cụ tiềm năng thay thế VBA trong tương lai.

Nó tạo project tham chiếu giống google script hay nhúng trong file như vba vậy bạn? Với cả hình như chỉ chạy trên cloud
 
Nó tạo project tham chiếu giống google script hay nhúng trong file như vba vậy bạn? Với cả hình như chỉ chạy trên cloud
Office Scripts chỉ chạy trên cloud thôi, với lại chỉ áp dụng cho tất cả các tập tin Excel nằm trên OneDrive (giống như Google Apps Script), hiện tại tất cả các tập tin Excel này đều dùng chung một kho script, chưa rõ liệu sau này Microsoft cho phép nhúng script vào riêng mỗi tập tin hay không vì hiện tại tất cả các script đều được lưu trữ trên OneDrive-Document-Office Scripts như hình dưới đây.
1664163585584.png

So với Google Apps Script, Office Scripts tồn tại một số hạn chế như sau:
  • Không hỗ trợ sự kiện (Event)
  • Mỗi thao tác đọc/ghi tệp Excel đều sẽ đồng bộ ngay với máy chủ, cho nên phải viết script sao cho thật tối ưu (hạn chế thao tác đọc/ghi đến mức tối thiểu, hạn chế dùng Try...Catch, v.v)
  • ...
Thím tham khảo thêm ở đây:

Platform limits and requirements with Office Scripts​

https://learn.microsoft.com/en-us/office/dev/scripts/testing/platform-limits

Improve the performance of your Office Scripts​

https://learn.microsoft.com/en-us/office/dev/scripts/develop/web-client-performance

TypeScript restrictions in Office Scripts​

https://learn.microsoft.com/en-us/office/dev/scripts/develop/typescript-restrictions
 
Hi chủ Thread,
Office script thread viết đc send email chưa ? Case mình là mình dùng msform collect data khi user submit , tất cả thông tin đc consolidate vào 1 file excel = PAutomate.
Mình đang muốn 1 script trên file excel online đó để send email lun. Thread thử ngâm cứu chơi có gì chi mình :D
Ps: vba mình đã làm đc, nhưng có điều ko hơi bất tiện là máy tính phải mở suốt , nên muốn tận dụng lun o365 để làm.
 
Hi chủ Thread,
Office script thread viết đc send email chưa ? Case mình là mình dùng msform collect data khi user submit , tất cả thông tin đc consolidate vào 1 file excel = PAutomate.
Mình đang muốn 1 script trên file excel online đó để send email lun. Thread thử ngâm cứu chơi có gì chi mình :D
Ps: vba mình đã làm đc, nhưng có điều ko hơi bất tiện là máy tính phải mở suốt , nên muốn tận dụng lun o365 để làm.
Theo như mình ngâm cứu thì hiện tại chưa có cách nào viết script gửi email trực tiếp trên Excel on the web, trừ phi thím kết hợp với Power Automate kèm theo một số điều kiện nào đó.
Ví dụ: Thím thiết kế một flow như sau:
  • Tự động chạy flow với điều kiện When a file is created, tức là khi thím tổng hợp tất cả thông tin nhận được từ Microsoft Form và lưu lại dưới dạng tập tin Excel vào một thư mục nào đó.
  • Chỉ áp dụng cho việc tạo, gửi email đi khi tập tin có phần mở rộng là .xlsx (tập tin Excel).
1665795505484.png


Nhược điểm là bất cứ tập tin Excel nào được tạo trong thư mục được chỉ định đều sẽ kích hoạt flow này. Nhìn chung mình thấy cái flow này không khả thi cho lắm.
 
Theo như mình ngâm cứu thì hiện tại chưa có cách nào viết script gửi email trực tiếp trên Excel on the web, trừ phi thím kết hợp với Power Automate kèm theo một số điều kiện nào đó.
Ví dụ: Thím thiết kế một flow như sau:
  • Tự động chạy flow với điều kiện When a file is created, tức là khi thím tổng hợp tất cả thông tin nhận được từ Microsoft Form và lưu lại dưới dạng tập tin Excel vào một thư mục nào đó.
  • Chỉ áp dụng cho việc tạo, gửi email đi khi tập tin có phần mở rộng là .xlsx (tập tin Excel).
View attachment 1440877

Nhược điểm là bất cứ tập tin Excel nào được tạo trong thư mục được chỉ định đều sẽ kích hoạt flow này. Nhìn chung mình thấy cái flow này không khả thi cho lắm.
Hehe thôi quay về máng lợn vba tiếp vậy. Cái flow PA ở trên ko đúng đề.
 
Back
Top