Chia sẻ công cụ tạo Ribbon cho file Excel

Liên hệ QC

huuthang_bd

Chuyên gia GPE
Tham gia
10/9/08
Bài viết
8,709
Được thích
10,814
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Thợ đụng
Xuất phát từ ý tưởng của topic Add-Ins Tạo Menu RibbonTiếng Việt Có Dấu Cho Office
Tôi viết lại công cụ tạo Ribbon cho file Excel. Vì topic kia đã quá nhiều bài nên tôi mở topic này để mọi người dễ tìm hơn.
Ai cần thì tải về dùng. "Open source" --=0
 

File đính kèm

  • Ribbon Creator.rar
    439.7 KB · Đọc: 1,129
Cái này máu thiệt nè bác, contextmenu, thêm vào menu trong mục File (hoặc nút Office), thêm vào nút lệnh trong các tab khác (Home, View, Insert...) luôn đi bác
Cái gì tiện ích thì làm, thông thường người ta chỉ dùng trên Ribbon và right click (cell menu) chứ mấy cái khác thôi thì để tự ai muốn học hỏi thì làm vậy, cái đó cũng có đầy trên mạng rồi.

P/s: Nhưng nếu nhớ không lầm thì 2007 không làm được cái Cell Menu này thì phải.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn @huuthang_bd giúp mình cách xóa cái menu tự tạo với. Mình tìm không ra. Cảm ơn bạn.

Capture.jpg
 
Upvote 0
Upvote 0
Bạn mở file Ribbon Creator lên, mở macro rồi click chuột phải vào ô A1 sau đó đóng file này lại là được.
Cảm ơn bạn, ngoài cách này ra còn cách nào khác ko bạn? vì theo cách này mình lại phải tải lại file "Ribbon Creator" để chạy (trước đó mình đã xóa khỏi máy tính)
 
Upvote 0
Trong một ví dụ tạo Ribbon của tác giả Phan Tự Hướng có phần đầu: Tác giả, Địa chỉ, Cơ quan. Nếu mình muốn chèn 1 hình ảnh (thường là Logo Công ty) vào cho đẹp thì làm ntn nhỉ? (Chỉ là hình ảnh, không phải button)
 

File đính kèm

  • RibbonCollection1.xlsm
    72.4 KB · Đọc: 89
Upvote 0
Các bạn cho mình hỏi chỉ có thể chèn ảnh tại thư viện của Microsoft (imageMso) chứ không chèn được ảnh của mình à ( Mình thấy có mục image và getimage mà ko biết cách sử dụng)
 
Upvote 0
Gửi Thắng,
Nhờ bạn giúp đỡ. Mình có sử dụng Ribbon Creator của bạn. Mình gặp một số vấn đề sau:
Mình tạo 1 file Addin test có đủ Form, module. Và khi tạo ribbon cho file đó thi báo lỗi như hình 1, cài addin test cho excel và chạt thử button chứa macro thì bị lỗi như hình 2.
Mình đính kèm file Design Example chế biến từ file của bạn và file Addin Test.
Cảm ơn.
 

File đính kèm

  • Hình 1.png
    Hình 1.png
    36.2 KB · Đọc: 65
  • Hình 2.png
    Hình 2.png
    31 KB · Đọc: 54
  • Addin Test.xlam
    56.4 KB · Đọc: 22
  • Design Example.xlsm
    581.3 KB · Đọc: 30
Upvote 0
Gửi Thắng,
Nhờ bạn giúp đỡ. Mình có sử dụng Ribbon Creator của bạn. Mình gặp một số vấn đề sau:
Mình tạo 1 file Addin test có đủ Form, module. Và khi tạo ribbon cho file đó thi báo lỗi như hình 1, cài addin test cho excel và chạt thử button chứa macro thì bị lỗi như hình 2.
Mình đính kèm file Design Example chế biến từ file của bạn và file Addin Test.
Cảm ơn.
Mình đã tìm được nguyên nhân. Thanks
 
Upvote 0
Em đã tạo được 1 tab ribbon mới. Nhưng sau khi tạo xong thì tab mới tạo nằm ở phía ngoài cùng bên phải. Làm thế nào để di chuyển tab mới tạo đó sang trái trước tab Home để khi khởi động file excel sẽ hiện thị tab đó luôn. Mong các bác giúp đỡ, xin cảm ơn!
 
Upvote 0
Làm thế nào để di chuyển tab mới tạo đó sang trái trước tab Home để khi khởi động file excel sẽ hiện thị tab đó luôn.
Muốn người khác giúp thì nên đính kèm nội dung tập tin XML để người ta sửa cho.
Còn nếu tự biết thích ứng với tập tin của mình thì hãy sửa thành

<tab id="MyCustomTab" label="The&#777; ri&#234;ng cu&#777;a t&#244;i" insertBeforeMso="TabHome">

Muốn sau thẻ Home thì insertAfterMso="TabHome"
-----------------
Còn muốn khi mở tập tin thì thẻ của mình được chọn thì làm thêm:
1. Phải có OnLoad
Mã:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"
          onLoad="RibbonOnLoad">

2. Trong Module với các callback
Mã:
Public rb As IRibbonUI

Sub ActiveMyTab()
    If Val(Application.Version) > 12 Then
        On Error Resume Next
        rb.ActivateTab "MyCustomTab"
    End If
End Sub

'Callback for customUI.onLoad
Sub RibbonOnLoad(ribbon As IRibbonUI)
    Set rb = ribbon
End Sub

' các code khác

3. Trong module ThisWorkbook
Mã:
Private Sub Workbook_Open()
    Application.OnTime Now + TimeValue("00:00:01"), "ActiveMyTab"
End Sub
 
Upvote 0
Muốn người khác giúp thì nên đính kèm nội dung tập tin XML để người ta sửa cho.
Còn nếu tự biết thích ứng với tập tin của mình thì hãy sửa thành

<tab id="MyCustomTab" label="The&#777; ri&#234;ng cu&#777;a t&#244;i" insertBeforeMso="TabHome">

Muốn sau thẻ Home thì insertAfterMso="TabHome"
-----------------
Còn muốn khi mở tập tin thì thẻ của mình được chọn thì làm thêm:
1. Phải có OnLoad
Mã:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"
          onLoad="RibbonOnLoad">

2. Trong Module với các callback
Mã:
Public rb As IRibbonUI

Sub ActiveMyTab()
    If Val(Application.Version) > 12 Then
        On Error Resume Next
        rb.ActivateTab "MyCustomTab"
    End If
End Sub

'Callback for customUI.onLoad
Sub RibbonOnLoad(ribbon As IRibbonUI)
    Set rb = ribbon
End Sub

' các code khác

3. Trong module ThisWorkbook
Mã:
Private Sub Workbook_Open()
    Application.OnTime Now + TimeValue("00:00:01"), "ActiveMyTab"
End Sub
Cảm ơn bác, em không hiểu chỗ này bỏ vào đâu ạ:
Mã:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"
          onLoad="RibbonOnLoad">
Em xin gửi file tạo ribon lên nhờ bác giúp, em xin cảm ơn
 

File đính kèm

  • Ribbon Creator1.rar
    314.9 KB · Đọc: 59
Upvote 0
Cảm ơn bác, em không hiểu chỗ này bỏ vào đâu ạ:
Mã:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"
          onLoad="RibbonOnLoad">
Em xin gửi file tạo ribon lên nhờ bác giúp, em xin cảm ơn
Cái tập tin bạn đính kèm có phải là tập tin làm việc của bạn đâu?
 
Upvote 0
Upvote 0
Cảm ơn bác, em không hiểu chỗ này bỏ vào đâu ạ:
Mã:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"
          onLoad="RibbonOnLoad">
Em xin gửi file tạo ribon lên nhờ bác giúp, em xin cảm ơn
Trên file Ribbon Creator.xlsm mà bạn gửi lên sửa như sau:
  • Nhập vào ô B2 chuỗi RibbonOnLoad
  • Nhập vào ô X5 chuỗi TabHome
Copy code ở mục 2 và 3 bài #53 vào file mà bạn muốn tạo Ribbon (tôi ví dụ là Book1.xlsm)
Lưu và đóng file Book1.xlsm
Trên file Ribbon Creator.xlsm, bấm vào nút Create Ribbon và trỏ đến file Book1.xlsm
 
Upvote 0
Tôi không thích dùng công cụ của người khác vì sẽ phải phụ thuộc vào họ.
Tôi đã hướng dẫn cách tự tạo ở link sau, bài #7. Ở bài #10 tôi giải thích cách thêm tiếng Việt và cho cả công cụ để "dịch"

http://www.giaiphapexcel.com/diendan/threads/vấn-đề-hiển-thị-menu-tự-tạo-trong-excel-2007.36385/#post-454302
Mã:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon startFromScratch="false">
    <tabs>
      <tab id="Tab1" label="Phan m?m QLCL">
        <group id="Group1" label="Công trình">
          <menu id="Menu1" label="H? so" imageMso="OpenStartPage" size="large" itemSize="normal">
            <button id="BT1" onAction="Taomoicongtrinh" label="T?o công trình m?i" imageMso="FileNew"/>
            <button id="BT2" onAction="Mocongtrinh" label="M? công trình" imageMso="FileOpen"/>
            <button id="BT3" onAction="Luucongtrinh" label="Luu công trình" imageMso="FileSave"/>
            <button id="BT4" onAction="Caidatchung" label="Cài d?t chung" imageMso="AddInManager"/>
          </menu>
          <menu id="Menu2" label="Thông tin chung" imageMso="AccessFormWizard" size="large" itemSize="normal">
            <button id="BT5" onAction="Thongtincongtrinh" label="Thông tin công trình" imageMso="QueryShowTable"/>
            <button id="BT6" onAction="Dulieudauvao" label="D? li?u d?u vào" imageMso="FormulaMoreFunctionsMenu"/>
          </menu>
          <menu id="Menu3" label="B?ng mã áp d?ng" imageMso="ImportAccess" size="large" itemSize="normal">
            <button id="BT7" onAction="Mahieucongviec" label="Mã hi?u công vi?c" imageMso="QueryShowTable"/>
            <button id="BT8" onAction="Mahieuthinghiem" label="Mã hi?u thí nghi?m" imageMso="FormulaMoreFunctionsMenu"/>
            <button id="BT9" onAction="Tieuchuannghiemthu" label="Tiêu chu?n nghi?m thu" imageMso="QueryShowTable"/>
            <button id="BT10" onAction="CCThinghiem" label="Can c? thí nghi?m" imageMso="FormulaMoreFunctionsMenu"/>
            <button id="BT11" onAction="Phuongphapkiemtra" label="Phuong pháp ki?m tra" imageMso="QueryShowTable"/>
          </menu>
        </group>
        <group id="Group2" label="Nh?t trình thi công">
            <button id="BT12" onAction="Nhattrinh" label="Nh?t trình" imageMso="FileBackupDatabase" size="large"/>
            <button id="BT13" onAction="Thoitiet" label="Th?i ti?t, ngày ngh?" imageMso="PictureBrightnessGallery" size="large"/>
            <button id="BT14" onAction="Kiemtrangaythicong" label="Ki?m tra ngày thi công" imageMso="FilePrepareMenu" size="normal"/>
            <button id="BT15" onAction="Xuatdulieubienban" label="Xu?t d? li?u biên b?n" imageMso="DataValidation" size="normal"/>
            <button id="BT16" onAction="Xuatdulieunhatky" label="Xu?t d? li?u nh?t ký" imageMso="ReviewTrackChanges" size="normal"/>
        </group>
        <group id="Group3" label="List Biên b?n">
            <button id="BT17" onAction="ListTNDV" label="Thí nghi?m d?u vào" imageMso="OrganizationChartSelectLevel" size="normal"/>
            <button id="BT18" onAction="ListNTCV" label="Nghi?m thu công vi?c" imageMso="CreateFormInDesignView" size="normal"/>
            <button id="BT19" onAction="ListTNHT" label="Thí nghi?m hi?n tru?ng" imageMso="ModuleInsert" size="normal"/>
            <button id="BT20" onAction="ListNTGD" label="Nghi?m thu giai do?n" imageMso="FunctionsFinancialInsertGallery" size="normal"/>
          <menu id="Menu4" label="Các biên b?n khác" imageMso="FileSaveToDocumentManagementServer" size="normal" itemSize="normal">
            <button id="BT21" onAction="ListTDBT" label="Theo dõi d? bê tông" imageMso="QueryShowTable"/>
            <button id="BT22" onAction="ListKTVK" label="Ki?m tra ván khuôn" imageMso="FormulaMoreFunctionsMenu"/>
            <button id="BT23" onAction="ListKTCD" label="Ki?m tra cao d?" imageMso="QueryShowTable"/>
            <button id="BT24" onAction="ListKTK" label="Ki?m tra khác" imageMso="FormulaMoreFunctionsMenu"/>
          </menu>
        </group>
        <group id="Group4" label="Xu?t b?n Biên b?n">
            <button id="BT25" onAction="TNDV" label="Thí nghi?m d?u vào" imageMso="OrganizationChartSelectLevel" size="normal"/>
            <button id="BT26" onAction="NTCV" label="Nghi?m thu công vi?c" imageMso="CreateFormInDesignView" size="normal"/>
            <button id="BT27" onAction="TNHT" label="Thí nghi?m hi?n tru?ng" imageMso="ModuleInsert" size="normal"/>
            <button id="BT28" onAction="NTGD" label="Nghi?m thu giai do?n" imageMso="FunctionsFinancialInsertGallery" size="normal"/>
          <menu id="Menu5" label="Cac biên b?n khác" imageMso="FileSaveToDocumentManagementServer" size="normal" itemSize="normal">
            <button id="BT29" onAction="TDBT" label="Theo dõi d? bê tông" imageMso="QueryShowTable"/>
            <button id="BT30" onAction="KTVK" label="Ki?m tra ván khuôn" imageMso="FormulaMoreFunctionsMenu"/>
            <button id="BT31" onAction="KTCD" label="Ki?m tra cao d?" imageMso="QueryShowTable"/>
            <button id="BT32" onAction="KTK" label="Ki?m tra khác" imageMso="FormulaMoreFunctionsMenu"/>
          </menu>
        </group>
        <group id="Group5" label="Nh?t ký thi công">
            <button id="BT33" onAction="Caidatnhatky" label="Cài d?t nh?t ký" imageMso="ViewDocumentActionsPane" size="large"/>
            <button id="BT34" onAction="Xuatnhatky" label="Ghi nh?t ký" imageMso="FunctionsDateTimeInsertGallery" size="large"/>
        </group>
        <group id="Group6" label="Ti?n ích khác">
          <menu id="Menu6" label="Hu?ng d?n - Tác gi?" imageMso="FunctionsLogicalInsertGallery" size="large" itemSize="normal">
            <button id="BT35" onAction="Huongdansudung" label="Hu?ng d?n s? d?ng" imageMso="FunctionsLookupReferenceInsertGallery"/>
            <button id="BT36" onAction="Videohuongdan" label="Video hu?ng d?n s? d?ng" imageMso="ViewSlideShowView"/>
            <button id="BT37" onAction="About" label="About" imageMso="ContactPictureMenu"/>
          </menu>
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>
Em thử thêm đoạn
Mã:
onLoad="RibbonOnLoad">
thì không thấy menu đâu nữa bác ạ
 
Upvote 0
Trên file Ribbon Creator.xlsm mà bạn gửi lên sửa như sau:
  • Nhập vào ô B2 chuỗi RibbonOnLoad
  • Nhập vào ô X5 chuỗi TabHome
Copy code ở mục 2 và 3 bài #53 vào file mà bạn muốn tạo Ribbon (tôi ví dụ là Book1.xlsm)
Lưu và đóng file Book1.xlsm
Trên file Ribbon Creator.xlsm, bấm vào nút Create Ribbon và trỏ đến file Book1.xlsm
Cảm ơn bác batman1, bác huuthang_bd ạ. Em làm được rồi. À, cho em hỏi thêm bác huuthang_bd ví dụ em muốn thêm Group Font mặc định vào tab tự tạo như File ở trên thì làm thế nào ạ
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom