Giả sử bạn có hichic.xlam. Khi bạn Export all customizations thì Excel sẽ tạo ra tập tin Excel customizations.exportedUI, mà trong "lõi" có rất nhiều đoạn kiểuBạn nói hơi khó hiểu, bạn hỏi về đường dẫn vào folder addins trên các máy có user khác nhau à?
- Nếu làm thủ công thì em phải mở file UI bằng NotePad sau đó đổi user bằng Ctrl+H (lý do là Excel lúc cài add-in nó đưa về ổ C).
Giờ có thể thêm 1 cái code để chèn "Excel Customizations.exportedUI" tự động thay đổi user trong file đó được không?
Sau khi thực hành lại thì em đã hiểu được vấn đề. Nhưng thật sự em chưa làm kiểu này bao giờ nên chưa hiểu cách tạo ra cái file UI cho lắm. Nếu là file xlam đó đã có sẵn ribbon thì chắc hẳn copy file làm addins luôn cho lẹ, vậy trường hợp còn lại là file xlam chưa có ribbon mà lại tạo một file xlsm rồi viết code tạo ribbon gọi từ file xlam đó, sau mới export file UI phải không bác nhỉ? Mà tạo một file khác gọi code từ xlam làm ribbon cũng lạ lẫm quá. Em chưa làm bao giờ. Chỉ biết viết trực tiếp trên xlam thôiTập tin là do Excel soạn, các đường dẫn tới XLAM trong tập tin là do Excel chèn vào. Tác giả không tự tạo tập tin và cũng không tự ghi đường dẫn. Khi mang sang máy khác mà Import tập tin Excel customizations.exportedUI thì vẫn được nhưng khi click vào menu trên ribbon thì Excel kêu là không tìm thấy
Tôi không dùng cái này bao giờ nên tôi chỉ dám ĐOÁN MÒ như sau. Có thể những điều tôi viết là vô nghĩa, khỏi phải ném đá.Sau khi thực hành lại thì em đã hiểu được vấn đề. Nhưng thật sự em chưa làm kiểu này bao giờ nên chưa hiểu cách tạo ra cái file UI cho lắm. Nếu là file xlam đó đã có sẵn ribbon thì chắc hẳn copy file làm addins luôn cho lẹ, vậy trường hợp còn lại là file xlam chưa có ribbon mà lại tạo một file xlsm rồi viết code tạo ribbon gọi từ file xlam đó, sau mới export file UI phải không bác nhỉ? Mà tạo một file khác gọi code từ xlam làm ribbon cũng lạ lẫm quá. Em chưa làm bao giờ. Chỉ biết viết trực tiếp trên xlam thôi
Cũng vì em đã thử chứ không phải nói suông nên em mới nói cách tạo ra file UI đó hơi khó hiểu. Em đã tạo thử khi cài sẵn một file addins có sẵn các nút ribbon (chắc cũng như bác, nhưng không ra kết quả như mong đợi, không có bất cứ liên kết nào tới file addins đó cả). Vì cũng chưa làm bao giờ theo kiểu đó nên em muốn biết thêm, có thể sẽ không bao giờ cần dùng đến kiểu này nhưng học hỏi được thêm cái gì càng tốt. Cảm ơn bác đã trả lời nhé!Tôi không dùng cái này bao giờ nên tôi chỉ dám ĐOÁN MÒ như sau. Có thể những điều tôi viết là vô nghĩa, khỏi phải ném đá.
Tôi nghĩ là Customize ribbon và add-in xlam là 2 thứ khác nhau. Tức Customize ribbon không nhất thiết dính dáng tới add-in xlam. Bạn mới cài Excel thì bạn làm gì đã có xlam nào CỦA MÌNH, đúng không. Nhưng bạn có thể bật thẻ Developer (mặc định không bật), thêm bớt các command trong các thể đã có, bật / tắt các thẻ đã có vd. tắt thẻ Insert. Tất cả những cái đó là Customize ribbon. Những việc này làm gì dính dáng tới xlam nào?
Khi bạn vd. bật Developer, tắt Insert, thêm bớt các command vào một số thẻ, và bạn thêm 1 add-in xlam. Khi sang máy khác họ mới cài Excel và chưa từng chỉnh sửa gì. Họ sẽ có thẻ Insert nhưng không có thẻ Developer và các command được thêm bớt trên máy bạn. Nếu bạn chỉ cho người ta xlam thì họ sẽ có thêm vd. thẻ mới trên trên ribbon. Còn lại họ vẫn có thẻ Insert nhưng không có thể Developer và các command được thêm bớt như trên máy bạn. Đó là điều bạn không muốn. Bạn muốn trên máy khác có y hệt như trên máy bạn cơ. Tôi ĐOÁN MÒ là có thể khi cung cấp cho họ Excel Customizations.exportedUI với đường dẫn đã chỉnh sửa thì họ sẽ có y như trên máy bạn, tức không có thẻ Insert nhưng có Developer, và các command được thêm bớt vào một số thẻ. Đây mới chính là ý muốn của bạn.
Dù gì thì tôi đã thử: phải chuột trên ribbon -> chọn Customize the ribbon -> combobox Import/Export -> chọn Export all customizations -> lưu với tên Excel Customizations.exportedUI. Nhưng khi mở bằng notepad thì chỉ có nội dung là <mso:cmd app="Excel" dt="1" />
Có gì đó không như mong đợi. Nhưng tôi không quan tâm nữa vì tôi không cần cái này. Cũng không muốn ĐOÁN MÒ nữa.
Cách xuất tập tin Excel Customizations.exportedUI thì bạn phải hỏi tác giả bài #20 vì tôi thấy tập tin của họ có nội dung.
Rất cảm ơn bác đã giải thích giúp em*, do là học "lung tung ben" trên mạng, không theo bài bản như các nah các chú nên đặt đâu hỏi, diễn giải cũng không chi tiết nỗi.Nếu muốn làm kiểu thay thế chuỗi như làm bằng notepad thì vd. (ví dụ thôi): đọc nội dung Excel customizations.exportedUI vào chuỗi TEXT -> dùng Replace để đổi chuỗi -> ghi chuỗi TEXT vào tập tin Excel customizations.exportedUI.
Đúng rồi, cách thường làm là khi viết thành addins thì viết ngay các nút lệnh cho addins đó luôn, khi cài vào là sử dụng được ngay. Mà bạn mô tả lại cách bạn làm ra file UI đó được không?Rất cảm ơn bác đã giải thích giúp em*, do là học "lung tung ben" trên mạng, không theo bài bản như các nah các chú nên đặt đâu hỏi, diễn giải cũng không chi tiết nỗi.
Như em* đã nói, học lung tùn ben nên đã lạc vô bài này, hậu quả là đến giờ vẫn không thể tạo 1 cái add-in mà có sãn ribbon được, mà dùng cách mà bác nói là "rắc rối", thật sự thì với em đó là cách tốt nhất rồi và vì muốn cải thiện cách đó nên mượn topic này hỏi, ai ngờ sai từ cái cúc áo đầu tiên.
*cháu
Nếu đã add-in add vào trong máy rồi thì mình bỏ cái đường dẫn đi.Em có đưa link trong bài #27, làm xong như link đó thì Export file UI:
View attachment 279934
C:\Users\nhtin\AppData\Roaming\Microsoft\AddIns\hamxamxi.xlam!ResizePictureCells
hamxamxi.xlam!ResizePictureCells
Bạn htin1997 thử lại nhé.Đây ạ, qua máy khác import ribbon thì sẽ lỗi đường dẫn.