Phần I: Đầu tiên mình sẽ lược dịch bài này (dựa theo Google dịch), mình thấy bài này tương đối đầy đủ và bài bản:
https://gregmaxey.com/word_tip_pages/customize_ribbon_main.html
Phần II: Một số bài viết khác của cùng tác giả cũng rất hay:
Phần III: Bây giờ là một số kinh nghiệm của mình (một người dùng thuần túy):
https://gregmaxey.com/word_tip_pages/customize_ribbon_main.html
Bài này trình bày nỗ lực của tác giả để giúp người dùng tùy biến thanh Ribbon mà không cần mua các công cụ có phí (Ở đây chỉ dùng các công cụ miễn phí).
Tác giả sẽ trình bày cách tùy biến thanh Ribbon thông qua việc tùy biến đoạn code xml (Tác giả gọi là RibbonXML).
Lưu ý: Từ sau Word 2010, Microsoft đã tích hợp công cụ tùy biến thanh Ribbon một cách cơ bản, bài này không tập trung vào công cụ tích hợp này của Microsoft.
Nguồn tài liệu về tùy chỉnh thanh Ribbon do Microsoft cung cấp:
Dùng cách được trình bày ở bài này, có thể tùy chỉnh thanh Ribbon cho từng file cụ thể; hoặc cho các file được tạo nên từ cùng một file Word template; hoặc cho tất cả các file trong máy bằng cách sử dụng Word template Add-In.
VD1: Crawl
Một ví dụ cơ bản, ẩn công cụ có sẵn trên thanh Ribbon: cụ thể là ẩn group "Macros" trong tab "View". Việc này giúp tạo không gian cho các công cụ cần thiết khác.
Thanh Ribbon trước khi sửa đôi
Thanh Ribbon sau khi sửa đôiCác bước thực hiện:
Trong VD này, ta sẽ mở rộng VD trên. Ta sẽ sử dụng Tab Home mặc định của Word; xóa bỏ, sắp xếp lại và thêm vào một số công cụ. Tab Home có Group "Clipboard" ở bên trái và Group "Editing" ở bên phải. Ta sẽ gộp 2 Group này lại thành Group "Editing and Clipboard" ở bên trái của Tab như trong hình dưới.
Group Editing and Clipboard mớiTa làm lại các bước sau:
Việc tùy biến thanh Ribbon sử dụng các công cụ có sẵn của Word và một vài separator rất đa dạng; với một đoạn code XML đúng; đủ dài ta có thể tạo được một tab mới với hầu hết các menu và công cụ của Word 2003. Để tải file template này, có thể truy cập bài viết sau của tác giả: Ribbon Menu Controls
VD3: Running on your own two feet!!
(Mình không hiểu gì về VBA nên phần này cũng không hiểu lắm.)
Với VD cuối cùng này, tác giả muốn chỉ cho chúng ta cách để tạo và thêm các công cụ tùy biến của riêng mình vào thanh Ribbon.
Chúng ta sẽ tạo tab "My Tab" như hình dưới; bao gồm 2 group là "Macros" và "Shortcuts".
Cảm ơn các bạn đã đọc!
Tác giả sẽ trình bày cách tùy biến thanh Ribbon thông qua việc tùy biến đoạn code xml (Tác giả gọi là RibbonXML).
Lưu ý: Từ sau Word 2010, Microsoft đã tích hợp công cụ tùy biến thanh Ribbon một cách cơ bản, bài này không tập trung vào công cụ tích hợp này của Microsoft.
Nguồn tài liệu về tùy chỉnh thanh Ribbon do Microsoft cung cấp:
- Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)
- Customizing the 2007 Office Fluent Ribbon for Developers (Part 2 of 3)
- Customizing the 2007 Office Fluent Ribbon for Developers (Part 3 of 3)
- Office Custom UI Editor tự động tạo ra file Open Office XML cần thiết và giao diện tương đối rõ ràng với người dùng.
- Cách làm này không yêu cầu bất kì phần mềm có phí nào.
- Any specialized customization involving ribbon callbacks can be done using VBA available to the Word user. (Cái này mình không biết dịch thế nào?)
Dùng cách được trình bày ở bài này, có thể tùy chỉnh thanh Ribbon cho từng file cụ thể; hoặc cho các file được tạo nên từ cùng một file Word template; hoặc cho tất cả các file trong máy bằng cách sử dụng Word template Add-In.
VÍ DỤ
VD1: Crawl
Một ví dụ cơ bản, ẩn công cụ có sẵn trên thanh Ribbon: cụ thể là ẩn group "Macros" trong tab "View". Việc này giúp tạo không gian cho các công cụ cần thiết khác.
Thanh Ribbon trước khi sửa đôi
Thanh Ribbon sau khi sửa đôi
- Mở Word, tạo và lưu một file template trắng với macro được enable. Với VD này, tác giả đã tạo và lưu một file template với tên "Customize Ribbon Example 1.dotm".
- Đóng file đã tạo và đóng Word.
- Mở Office Custom UI Editor, trong Office Custom UI Editor mở file template đã lưu ở bước trên.
Bảng RibbonXML trống
Chọn và chèn phần thích hợp
Notes:- Do Custom UI Editor có thể được cập nhật nên giao diện trong các hình trên có thể khác so với thực tế.
- Khi tạo RibbonXML, ta có thể tạo một file kép gồm cả CustomUI14 và CustomUI12. Việc này giúp các tùy chỉnh có thể thay đổi phụ thuộc vào việc đang sử dụng Word 2007 hay 2010. Ron de Bruin đã tạo một VD cho Excel, có thể dễ dàng áp dụng cho Word, Link: Load different RibbonX when opening file in Excel 2007 or 2010
- Sao chép và dán đoạn RibbonXML sau vào Office Custom UI Editor
XML:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> <ribbon> <tabs> <tab idMso="TabView"> <group idMso="GroupMacros" visible="false" /> </tab> </tabs> </ribbon> </customUI>
Sau khi dán RibbonXML
Notes: Ta không thể xóa một công cụ mặc định trên thanh Ribbon. Thay vào đó ta sử dụng thuộc tính "visible" của công cụ để xác định nó có được hiển thị trên thanh Ribbon hay không. - Trong bài này tác giả không nói kĩ về cấu trúc của RibbonXML. Đơn giản là: ribbon sẽ gồm một hoặc nhiều tab; tab sẽ gồm một hoặc nhiều group; group sẽ gồm nhiều thứ như buttons, splitButtons, dropdowns, menus, separators, etc.. Mỗi thứ này và các thuộc tính của chúng nằm trong một cấu trúc xml và thuộc một cấu trúc khác (parent element). Cấu trúc của RibbonXML quyết định cấu trúc của thanh Ribbon.
- Trong đoạn RibbonXML trên, tác giả đã miêu tả cấu trúc để ẩn đi GroupMacro mặc định của tab View.
- Lưu và thoát Custom UI Editor.
Bonus Tips:- Khi sử dụng Office Custom UI Editor nên sử dụng tính năng Validate để phát hiện lỗi trong cấu trúc RibbonXML sớm nhất có thể. Các quy tắc trong cấu trúc của RibbonXML được cung cấp bởi MSDN: Office2007XML Schema & Office2010XML Schema ("https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=1574") (Redirect của vn-z.vn bị lỗi với link này, các bạn copy link nhé)
- Kể cả khi RibbonXML đúng về cấu trúc vẫn có thể có lỗi. Luôn sử dụng tính năng hiển thị lỗi của Microsoft Word.
Tính năng Validate của Office Custom UI Editor.
Tùy chọn của Microsoft Word giúp phát hiện và sửa lỗi.
- Sau khi tạo và lưu RibbonXML bằng Office Custom UI Editor, ta có file template .dotm chứa thư mục CustomUI, trong thư mục này có file CustomUI14.xml (hoặc CustomUI12.xml), file này chứa nội dung tùy biến thanh Ribbon.
- Trong VD này, ta đã tạo một file Word template add-in. Khi Word load file add-in này, Word sẽ mở thư mục _rels bên trong file add-in, rồi đọc file .rels bên trong thư mục này để xem thông tin tùy biến thanh Ribbon ở đâu và load thông tin này.
- Lợi ích của Office Custom UI Editor là tự động tạo ra các file cần thiết cho việc tùy biến thanh Ribbon. Để tìm hiểu chi tiết hơn Office Custom UI Editor tạo ra các file nào, ta có thể đọc tài liệu do MSDN cung cấp phía trên.
- Chép file template đã lưu vào thư mục Word Startup và khởi động Word. Thanh Ribbon sẽ được tùy chỉnh như trong hình minh họa phía trên.
Notes: Để hiểu thêm về template add-ins của Word có thể đọc thêm phần: Organizing Your Macros/Template Add-ins của bài: Installing Macros
Trong VD này, ta sẽ mở rộng VD trên. Ta sẽ sử dụng Tab Home mặc định của Word; xóa bỏ, sắp xếp lại và thêm vào một số công cụ. Tab Home có Group "Clipboard" ở bên trái và Group "Editing" ở bên phải. Ta sẽ gộp 2 Group này lại thành Group "Editing and Clipboard" ở bên trái của Tab như trong hình dưới.
Group Editing and Clipboard mới
- Mở Word, tạo và lưu một file template trắng với macro được enable. Với VD này, tác giả đã tạo và lưu một file template với tên "Customize Ribbon Example 2.dotm".
- Đóng file đã tạo và đóng Word.
- Mở Office Custom UI Editor, trong Office Custom UI Editor mở file template đã lưu ở bước trên.
- Chèn Office Custom UI Part thích hợp.
- Dán đoạn code sau vào Office Custom UI Editor.
XML:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> <ribbon> <tabs> <tab idMso="TabHome"> <group idMso="GroupEditing" visible="false" /> <group idMso="GroupClipboard" visible="false" /> <group id="CustomGroup" label="Editing and Clipboard" insertBeforeMso="GroupFont"> <splitButton idMso="PasteMenu" size="large" /> <button idMso="Cut" /> <button idMso="Copy" /> <control idMso="FormatPainter" /> <separator id="Sep1" /> <button idMso="FindDialog" /> <button idMso="ReplaceDialog" /> <menu idMso="SelectMenu" /> <dialogBoxLauncher > <button idMso="ShowClipboard" /> </dialogBoxLauncher> </group> </tab> </tabs> </ribbon> </customUI>
Nhắc nhở lần nữa: Ta không thể xóa hay chỉnh sửa một công cụ mặc định trên thanh Ribbon. Thay vào đó ta sử dụng thuộc tính "visible" của công cụ để xác định nó có được hiển thị trên thanh Ribbon hay không. - Trong đoạn code RibbonXML trên, ta đã:
- Ẩn Group Clipboard và Group Editing trong tab Home.
- Tạo group "Editing and Clipboard" mới ngay trước Group Font mặc định.
- Thêm các buttons, control, menu, và dialogBoxLauncer mặc định vào group mới cùng với một separator.
- Kiểm tra lại đoạn code trên.
Notes:- "idMso" cố định cho các công cụ mặc định của Word; có thể xác định "idMso" bằng cách vào: Word Options>Customize (or Word Options>Customize Ribbon), di chuột vào công cụ cần tìm, "idMso" sẽ xuất hiện trong phần screen tip. Hoặc, toàn bộ danh sách của các công cụ mặc định trong thanh Ribbon (bao gồm tên và phân loại) có thể được tải về từ Microsoft: List of Control IDs (Office 2007) & List of Control IDs (Office 2010)
- "id" có thể là bất kì cái gì nhưng phải là duy nhất cho một công cụ mà ta thêm vào. (Trong đoạn code trên "id" của separator là "Sep1")
- Lưu và đóng Office Custom UI Editor.
- Chép file template vào thư mục Word Startup và khởi động Word.
Việc tùy biến thanh Ribbon sử dụng các công cụ có sẵn của Word và một vài separator rất đa dạng; với một đoạn code XML đúng; đủ dài ta có thể tạo được một tab mới với hầu hết các menu và công cụ của Word 2003. Để tải file template này, có thể truy cập bài viết sau của tác giả: Ribbon Menu Controls
VD3: Running on your own two feet!!
(Mình không hiểu gì về VBA nên phần này cũng không hiểu lắm.)
Với VD cuối cùng này, tác giả muốn chỉ cho chúng ta cách để tạo và thêm các công cụ tùy biến của riêng mình vào thanh Ribbon.
Chúng ta sẽ tạo tab "My Tab" như hình dưới; bao gồm 2 group là "Macros" và "Shortcuts".
- Group "Macros" bao gồm button để hiển thị VB Editor và dropdown để thực thi các macro có trong danh sách.
- Group "Shortcuts" bao gồm 2 toggle button. Một cái để ẩn/hiện bookmarks và một cái để ẩn/hiện hidden text.
- Mở Word, tạo và lưu một file template trắng với macro được enable. Với VD này, tác giả đã tạo và lưu một file template với tên "Customize Ribbon Example 3.dotm".
- Đóng file đã tạo và đóng Word.
- Mở Office Custom UI Editor, trong Office Custom UI Editor mở file template đã lưu ở bước trên.
- Chèn Office Custom UI Part thích hợp.
- Dán đoạn code sau vào Office Custom UI Editor.
Notes:XML:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="RibbonControl.Onload"> <ribbon> <tabs> <tab id="CustomTab1" label="My Tab"> <group id="CustGrp1" label="Macros" > <button id="Btn1" label="Show Visual Basic Editor" imageMso="VisualBasic" onAction="RibbonControl.MyBtnMacro" /> <dropDown id="DD1" label="Run Macro" getItemCount="RibbonControl.GetItemCount" getItemLabel="RibbonControl.GetItemLabel" getSelectedItemIndex="RibbonControl.GetSelectedItemIndex" onAction="RibbonControl.MyDDMacro" /> </group> <group id="CustGrp2" label="Shortcuts" > <toggleButton id="TB1" size="normal" getImage="RibbonControl.getImage" getLabel="RibbonControl.getLabel" onAction="RibbonControl.ToggleonAction" getPressed="RibbonControl.buttonPressed" /> <toggleButton id="TB2" size="normal" getImage="RibbonControl.getImage" getLabel="RibbonControl.getLabel" onAction="RibbonControl.ToggleonAction" getPressed="RibbonControl.buttonPressed" /> </group> </tab> </tabs> </ribbon> </customUI>- Có một vài sự khác nhau giữa 2 đoạn code RibbonXML ở 2 VD trên với đoạn code này. Chúng ta chỉ tập trung vào việc đoạn code ở VD này không có thuộc tính "idMso", tác giả chỉ sử dụng "id". Nhấn mạnh lại lần nữa, "idMso" là thuộc tính cố định của các công cụ mặc định trong Word; còn "id" là thuộc tính chúng ta tự gán cho công cụ chúng ta tự tạo ra.
- Tác giả đã thêm "onLoad="RibbonControl.Onload" và dòng 2 và các thuộc tính khác của công cụ ngoài "id"; đây là các thuộc tính hoặc cách thức để thanh Ribbon cũng như các công cụ của nó có thể liên kết với một project VBA có trong file template.
- Khi Word load đoạn code RibbonXML này, Word vẫn chưa biết các thông tin về các công cụ chúng ta thêm vào. Sau đó Word sẽ lấy các thông tin này từ project VBA khi chúng ta thực hiện các lệch này.
- Lưu và đóng Office Custom UI Editor.
- Bây giờ ta sẽ tập trung vào project VBA.
WARNING ** Luôn luôn lưu và đóng file template trong Office Custom UI Editor trước khi mở file template đó trong Word. Luôn luôn lưu và đóng file template trong Word trước khi mở file template đó trong Office Custom UI Editor. Không bao giờ được làm việc trên 1 file template trong cả 2 phần mềm cùng một lúc. ** WARNING
Lưu ý: Khi lần đầu mở file template này trong Word hoặc khi dùng các công cụ trong tab mới vừa tạo, Word sẽ báo lỗi do ta chưa tạo đoạn code VBA tương ứng. - Mở Word, mở file template, mở VB Editor (VBE) (ALT+F11).
- Using the VBE Insert menu, insert two standard project modules List item 2. Rename the modules "RibbonControl" and "Macros". (Các bạn tự dịch nhé!)
Lưu ý: Tên của module là tùy ý, bạn có thể sử dụng tên nào tùy thích, miễn là chúng giống nhau trong RibbonXML và trong VBA. - Dán đoạn code sau vào "RibbonControl" module:
Bonus Tip: Notice the Select Case statements in the callback procedures. Get used to using same callback procedures and appropriate Case statements to process multiple controls. It will save you countless lines of code in larger projects. (Mình không thể dịch được cái này.)Mã:Option Explicit Public myRibbon As IRibbonUI Sub Onload(ribbon As IRibbonUI) 'Creates a ribbon instance for use in this project Set myRibbon = ribbon End Sub 'Callback for DropDown GetItemCount Sub GetItemCount(ByVal control As IRibbonControl, ByRef count) 'Tell the ribbon to show 4 items in the dropdown count = 4 End Sub 'Callback for DropDown GetItemLabel Sub GetItemLabel(ByVal control As IRibbonControl, Index As Integer, ByRef label) 'This procedure fires once for each item in the dropdown. Index is _ received as 0, 1, 2, etc. and label is returned. label = Choose(Index + 1, "Select from list", "Macro 1", "Macro 2", "Macro 3") End Sub 'Callback DropDown GetSelectedIndex Sub GetSelectedItemIndex(ByVal control As IRibbonControl, ByRef Index) 'This procedure is used to ensure the first item in the dropdown is selected _ when the control is displayed Select Case control.id Case Is = "DD1" Index = 0 Case Else 'Do nothing End Select End Sub 'Callback for DropDown onAction Sub myDDMacro(ByVal control As IRibbonControl, selectedID As String, selectedIndex As Integer) Select Case selectedIndex Case 0 'Do nothing Case 1 Macros.Macro1 Case 2 Macros.Macro2 Case 3 Macros.Macro3 End Select 'Force the ribbon to restore the control to its original state myRibbon.InvalidateControl control.id End Sub 'Callback for Button onAction Sub MyBtnMacro(ByVal control As IRibbonControl) Select Case control.id Case Is = "Btn1" Macros.ShowEditor Case Else 'Do nothing End Select End Sub 'Callback for Toogle onAction Sub ToggleonAction(control As IRibbonControl, pressed As Boolean) Select Case control.id Case Is = "TB1" ActiveWindow.View.ShowBookmarks = Not ActiveWindow.View.ShowBookmarks Case Is = "TB2" 'Note: "pressed" represents the toggle state. So we could use this instead. If pressed Then ActiveWindow.View.ShowHiddenText = False Else ActiveWindow.View.ShowHiddenText = True End If If Not ActiveWindow.View.ShowHiddenText Then ActiveWindow.View.ShowAll = False End If End Select 'Force the ribbon to redefine the control wiht correct image and label myRibbon.InvalidateControl control.id End Sub 'Callback for togglebutton getLabel Sub getLabel(control As IRibbonControl, ByRef returnedVal) Select Case control.id Case Is = "TB1" If Not ActiveWindow.View.ShowBookmarks Then returnedVal = "Show Bookmarks" Else returnedVal = "Hide Bookmarks" End If Case Is = "TB2" If Not ActiveWindow.View.ShowHiddenText Then returnedVal = "Show Text" Else returnedVal = "Hide Text" End If End Select End Sub 'Callback for togglebutton getImage Sub GetImage(control As IRibbonControl, ByRef returnedVal) Select Case control.id Case Is = "TB1" If ActiveWindow.View.ShowBookmarks Then returnedVal = "_3DTiltRightClassic" 'The idMso of a built-in control Else returnedVal = "_3DTiltLeftClassic" 'The idMso of a built-in control End If Case Is = "TB2" If ActiveWindow.View.ShowHiddenText Then returnedVal = "WebControlHidden" 'The idMso of a built-in control Else returnedVal = "SlideShowInAWindow" 'The idMso of a built-in control End If End Select End Sub 'Callback for togglebutton getPressed Sub buttonPressed(control As IRibbonControl, ByRef toggleState) 'toggleState (i.e., true or false) determines how the 'toggle appears _ on the ribbon (i.e., flusn or sunken). Select Case control.id Case Is = "TB1" If Not ActiveWindow.View.ShowBookmarks Then toggleState = True Else toggleState = False End If Case Is = "TB2" If Not ActiveWindow.View.ShowHiddenText Then toggleState = True Else toggleState = False End If End Select End Sub - Dán đoạn code sau vào "Macros" module:
Mã:Option Explicit Sub ShowEditor() ShowVisualBasicEditor = True End Sub Sub Macro1() MsgBox "Macro 1 running" 'Replace this with whatever code you would wish to run. End Sub Sub Macro2() MsgBox "Macro 2 running" 'Replace this with whatever code you would wish to run. End Sub Sub Macro3() MsgBox "Macro 3 running" 'Replace this with whatever code you would wish to run. End Sub - Lưu và đóng template.
- Đóng Word và chuyển file template vào thư mục Word start-up.
- Mở Word và thử.
Lưu ý: Rất nhiều người gặp vấn đề khi copy và paste các đoạn code trong bài này, tác giả cho rằng đó là do định dạng của trang web nên tác giả đã upload toàn bộ các file có chứa các đoạn code RibbonXML và code VBA để chúng ta có thể download (Các file kết thúc bằng chữ "A" là dành cho Word 2007 (CustomUI12)): Ribbon Customization Demo Templates
- Tất cả các vấn đề chi tiết đều đã được tác giả cung cấp qua các link tham chiếu.
- Chúng ta có thể xác định được hầu hết "idMso" của các công cụ mặc định của Word thông qua tính năng QAT/Ribbon customization của Word. Toàn bộ danh sách có thể được download từ Microsoft: List of Control IDs (Office 2007) & List of Control IDs (Office 2010)
- Chúng ta học bằng cách thực hành.
- Tác giả giới thiệu cuốn sách: RibbonX: Customizing the Office 2007 Ribbon của Robert Martim, Ken Puls và Teresa Hennig.
HẾT
Đây là lần đầu tiên mình nghiêm túc dịch cái gì đó, quá khó, có một số câu không biết dịch thế nào mình đã để nguyên; một số câu nêu cảm nghĩ của tác giả mình đã bỏ qua và một số câu dịch bừa. Một số link không vào được nhưng mình để nguyên như trong bài gốc của tác giả.Cảm ơn các bạn đã đọc!
- Theo như bài trên thì:
- Word 2007 dùng một file template riêng (Cái này mình chưa Test vì không có Word 2007).
- Word 2010; 2013; 2016; 2019 dùng chung một file template (Cái này đã Test).
- Word 2007 dùng một file template riêng (Cái này mình chưa Test vì không có Word 2007).
- Cái này đã test trên Office 2010:
- Nếu bạn muốn chỉ tùy biến thanh Ribbon trên 1 file thì chèn RibbonXML vào file đó.
- Nếu bạn muốn tùy biến thanh Ribbon cho các file được tạo nên từ 1 template thì chèn RibbonXML vào file template đó.
- Nếu bạn muốn tùy biến thanh Ribbon cho Word thì sao chép file template đã chèn RibbonXML vào thư mục Startup của Word.
VD với Window 8.1 và Office 2010: "C:\Program Files\Microsoft Office\Office14\STARTUP"
- Nếu bạn muốn chỉ tùy biến thanh Ribbon trên 1 file thì chèn RibbonXML vào file đó.
- Một phần mềm khác chức năng tương tự: (Mình không dùng cái này nhưng đưa lên đây là vì nó mới hơn, vẫn đang được phát triển nên có lẽ tốt hơn)
https://github.com/fernandreu/office-ribbonx-editor - Office Custom UI Editor yêu cầu .NET Framework version 3.0.
- Với bạn nào không muốn cài thêm .NET Framework hoặc không muốn cài thêm một phần mềm lạ hoắc vào máy (giống mình) có thể dùng cách sau:
- Tải file .dotm do tác giả của bài viết trên cung cấp: Ribbon Customization Demo Templates
- Dùng 7-zip mở file .dotm:
- Chép file CustomUI14.xml ra đâu đó.
- Dùng Notepad của chính Window để sửa file .xml này. Hoặc có thể dùng Notepad++ lên màu cho đẹp:
- Sau khi sửa xong lại kéo file .xml vào file template:
- Tải file .dotm do tác giả của bài viết trên cung cấp: Ribbon Customization Demo Templates
- Nếu các bạn tick như thế này:
Thì nếu có lỗi Word sẽ báo:
- Danh sách các công cụ mặc định của bộ Office:
- Các bạn có thể đọc thêm về cấu trúc của RibbonXML bằng link này: [MS-CUSTOMUI]: Custom UI XML Markup Specification
Một số thuộc tính mà mình hay dùng:
- idMso="" : Xác định công cụ mặc định của Word.
- label="" : Tên được hiển thị.
- showLabel="false": Không hiển thị tên; nếu không có thì tên được hiển thị.
- size="large": Công cụ sẽ hiển thị thành nút to; nếu không có thì là nút nhỏ.
- insertAfterMso="" hoặc insertBeforeMso="": Vị trí trên thanh Ribbon.
- visible="false": Không hiển thị công cụ; nếu không có thì công cụ sẽ được hiển thị.
- idMso="" : Xác định công cụ mặc định của Word.
- Với các bước hoàn toàn tương tự, ta có thể tùy biến thanh Ribbon của Excel và Powerpoint:
- Thư mục khởi động của Excel 2010 là: "C:\Program Files\Microsoft Office\Office14\XLSTART"
- Mình chưa tìm ra cách nào để Powerpoint 2010 tự khởi động cùng với file template cả. Việc chèn RibbonXML vào từng file Powerpoint cụ thể hoàn toàn bình thường.
- Thư mục khởi động của Excel 2010 là: "C:\Program Files\Microsoft Office\Office14\XLSTART"
- Một số vấn đề mà mình chưa thể giải quyết được, mong các bạn cùng thảo luận:
- Mình không thể tạo được một group có 2 hàng như group Fonts mặc định, chỉ có thể tạo được group có 3 hàng như group Clipboards mặc định.
- Mình không thể làm một file template khởi động mặc định cùng Powerpoint.
- Mình không thể tạo được một group có 2 hàng như group Fonts mặc định, chỉ có thể tạo được group có 3 hàng như group Clipboards mặc định.
Sửa lần cuối: