Chia sẻ công cụ tạo Ribbon cho file Excel (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

huuthang_bd

Chuyên gia GPE
Tham gia
10/9/08
Bài viết
8,933
Được thích
11,357
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

Upvote 0
Upvote 0
Thật ra cái này của bác Hữu Thắng là tạo trên file xlsm, bạn thử với file xlsm đã có sẳn Ribbon (tôi nghĩ đây là hạn chế cần được khắc phục) sẽ được.
Mạnh mới viết xong ....tạo cho 1 file Excel bất kỳ có trên máy của bạn (Office từ 2007 đến 2016)

dạng file...File *.xlsm,*.xlsb và *.xlsx Nhưng File *.xlsx Mình bỏ vì liên quan tới Code....

đang test lại mai mốt úp thớt bên kia
 
Upvote 0
Thật ra cái này của bác Hữu Thắng là tạo trên file xlsm, bạn thử với file xlsm đã có sẳn Ribbon (tôi nghĩ đây là hạn chế cần được khắc phục) sẽ được.
Cái này tôi viết là để tạo Ribbon cho file Excel2007+ bất kỳ. Không cần trước đó đã có Ribbon.
Tôi đã test trên Excel 2007. Có thể cấu trúc file Excel 2010 trở lên khác với Excel 2007 nhưng tôi chưa có điều kiên test.

Còn về code VBA, quan điểm của tôi là không nên thêm vào vì ai biết người ta muốn viết thế nào mà thêm vào.
 
Upvote 0
Cái này tôi viết là để tạo Ribbon cho file Excel2007+ bất kỳ. Không cần trước đó đã có Ribbon.
Tôi đã test trên Excel 2007. Có thể cấu trúc file Excel 2010 trở lên khác với Excel 2007 nhưng tôi chưa có điều kiên test.

Còn về code VBA, quan điểm của tôi là không nên thêm vào vì ai biết người ta muốn viết thế nào mà thêm vào.

Mình mới coi lại thấy File mẫu Example.xlsm có tới 2 File customUI.xml và Files customUI14.xml ...

Phòng cho xài từ Office 2007 tới 2016 ....như vây là ko thể tạo Ribbon cho một file Excel bất kỳ trên máy được ....

Mai Mình úp cái của Mình cho xem muốn tao file nào trên máy cũng ok hết ...--=0

dạng file *.xlsm, *.xlsb và *.xlsx ... nhưng *.xlsx mình bỏ vì liên quan tới code
 
Upvote 0
Mình mới coi lại thấy File mẫu Example.xlsm có tới 2 File customUI.xml và Files customUI14.xml ...

Phòng cho xài từ Office 2007 tới 2016 ....như vây là ko thể tạo Ribbon cho một file Excel bất kỳ trên máy được
Cái này chỉ là võ đoán của bạn mà thôi. Sao bạn không nghĩ 2 file đó được tạo khi chạy code --=0
 
Upvote 0
Còn về code VBA, quan điểm của tôi là không nên thêm vào vì ai biết người ta muốn viết thế nào mà thêm vào.
Code ở đây là tùy thuộc vào đối tượng bạn nhé, khi button thì cần code gì, checkbox thì cần code gì... Giả sử tôi là người dùng khi tạo ra ribbon làm sao biết được thêm code cho button như thế nào, checkbox ra sao (các tham số của nó là bao nhiêu). Thấy các phần mềm sẽ tạo luôn code cho bạn, bạn chỉ việc thêm các lệnh theo nhu cầu thôi.
 
Upvote 0
Code ở đây là tùy thuộc vào đối tượng bạn nhé, khi button thì cần code gì, checkbox thì cần code gì... Giả sử tôi là người dùng khi tạo ra ribbon làm sao biết được thêm code cho button như thế nào, checkbox ra sao (các tham số của nó là bao nhiêu). Thấy các phần mềm sẽ tạo luôn code cho bạn, bạn chỉ việc thêm các lệnh theo nhu cầu thôi.
Tôi thì nghĩ khác, người thiết kế Ribbon thì phải biết viết code để Ribbon gọi macro viết như thế nào. Hơn nữa với tôi không làm thì thôi, làm thì làm cho bài bản mà tính cả các thủ tục callback thì hơi bị nhiều, làm sẽ mất nhiều thời gian. Để khi nào có hứng có thể sẽ bổ sung thêm phần chèn code mẫu.
--
Bài #2 làm không được có thể do làm chưa đúng - chưa chọn đúng phiên bản office. Cái này cũng là hạn chế mà lúc đầu tôi chưa tính tới, đáng lẽ Ribbon tạo cho Office 2007 thì Office 2010-2016 phải dùng được.

File đính kèm ở bài này tôi đã khắc phục vấn đề này.
 

File đính kèm

Upvote 0
Mạnh mới Thử Bài #11 chỉ tạo được mỗi File *.xlsm thôi ... Còn File *.xlsb là tan xác pháo đó nha ....--=0

Mà sao ko thiết kế khi chọn Icon một cái nó Copy paste luôn vào Cells giống mình đó ...Ai làm cho người ta ngó cái Msgbox một cái tiếng Anh ai nhớ nổi ...hahahaha

Nếu Bạn nào chưa biết Tìm thì Link Sau Bài #69

http://www.giaiphapexcel.com/forum/...Menu-RibbonTiếng-Việt-Có-Dấu-Cho-Office/page7
 
Lần chỉnh sửa cuối:
Upvote 0
Mạnh mới Thử Bài #11 chỉ tạo được mỗi File *.xlsm thôi ... Còn File *.xlsb là tan xác pháo đó nha ....--=0
Đúng là lỗi với file xlsb. Tôi không test file xlsb nên không phát hiện ra file xlsb có hơi khác một chút. Chỉ cần sửa lại code một chút là được.
Mà sao ko thiết khi chọn Icon một cái nó Copy paste luôn vào Cells giống mình đó ...Ai làm cho người ta ngó cái Msgbox một cái tiếng Anh ai nhớ nổi ...hahahaha

Nếu Bạn nào chưa biết Tìm thì Link Sau Bài #69

http://www.giaiphapexcel.com/forum/...Menu-RibbonTiếng-Việt-Có-Dấu-Cho-Office/page7
Bạn cứ test cho tử tế thì sẽ biết là nó có gán imageMso vào đúng chỗ hay không. Không phải control nào cũng có thuộc tính imageMso. Đúng chỗ thì mới gán, không đúng chỗ mà gán bừa bãi thì khi sai không biết sai chỗ nào.
 

File đính kèm

Upvote 0
Đúng là lỗi với file xlsb. Tôi không test file xlsb nên không phát hiện ra file xlsb có hơi khác một chút. Chỉ cần sửa lại code một chút là được.

Bạn cứ test cho tử tế thì sẽ biết là nó có gán imageMso vào đúng chỗ hay không. Không phải control nào cũng có thuộc tính imageMso. Đúng chỗ thì mới gán, không đúng chỗ mà gán bừa bãi thì khi sai không biết sai chỗ nào.
Bạn Mới chỉnh lại hả .... File này OK rồi đó ...

Thì Mình chạy File mẫu đó mà Design Example.xlsm

Vậy là code cho một File Excel bất kỳ Sau Mình Nha....hahaha ...Mình úp sáng sớm giờ Bạn mới xong ...
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn Mới chỉnh lại hả .... File này OK rồi đó ...

Thì Mình chạy File mẫu đó mà Design Example.xlsm

Vậy là code cho một File Excel bất kỳ Sau Mình Nha....hahaha ...Mình úp sáng sớm giờ Bạn mới xong ...
Tôi mới sửa lại lỗi file xlsb, còn cái imageMso bạn tải file bài #1 về mà test. Tôi thì không dám test file bạn, thấy file dll là bỏ chạy.
Chả biết ai trước ai sau nhưng với tôi không quan trọng. Tôi đưa lên là chia sẻ cho mọi người sử dụng. Ai thích thì dùng, không thích thì thôi. Với tôi chả có vấn đề.
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi mới sửa lại lỗi file xlsb, còn cái imageMso bạn tải file bài #1 về mà test. Tôi thì không dám test file bạn, thấy file dll là bỏ chạy.
Chả biết ai trước ai sau nhưng với tôi không quan trọng. Tôi đưa lên là chia sẻ cho mọi người sử dụng. Ai thích thì dùng, không thích thì thôi. Với tôi chả có vấn đề.

File Bài #1 thử tới lui rồi chạy cho File *.xlsb vẫn Tan xác pháo

Chúc Một ngày mới tốt lành và vui vẻ
 
Lần chỉnh sửa cuối:
Upvote 0
Đúng là lỗi với file xlsb. Tôi không test file xlsb nên không phát hiện ra file xlsb có hơi khác một chút. Chỉ cần sửa lại code một chút là được.

Bạn cứ test cho tử tế thì sẽ biết là nó có gán imageMso vào đúng chỗ hay không. Không phải control nào cũng có thuộc tính imageMso. Đúng chỗ thì mới gán, không đúng chỗ mà gán bừa bãi thì khi sai không biết sai chỗ nào.
File này của Bạn còn lỗi đó nha ...

Nếu sau 3 ngày mà Bạn chưa tìm ra lỗi và xác nhận là chưa tìm ra thì Mạnh nói ...Còn cứ khẳng định là không thì Mạnh Ứ nói ....
Nói thật lòng và chân thành đó nha ...Mạnh không hàm ý nhỏ nhặt ...--=0//**/--=--

Thân

Kiều Mạnh
 
Upvote 0
Tôi thì nghĩ khác, người thiết kế Ribbon thì phải biết viết code để Ribbon gọi macro viết như thế nào. Hơn nữa với tôi không làm thì thôi, làm thì làm cho bài bản mà tính cả các thủ tục callback thì hơi bị nhiều, làm sẽ mất nhiều thời gian. Để khi nào có hứng có thể sẽ bổ sung thêm phần chèn code mẫu.
--
Bài #2 làm không được có thể do làm chưa đúng - chưa chọn đúng phiên bản office. Cái này cũng là hạn chế mà lúc đầu tôi chưa tính tới, đáng lẽ Ribbon tạo cho Office 2007 thì Office 2010-2016 phải dùng được.

File đính kèm ở bài này tôi đã khắc phục vấn đề này.
Chào Anh!.
Ví dụ: Tôi có file TD; Trong file có code xóa dữ liệu; Tôi muốn tạo menu xóa dữ liệu bằng tiếng việt để chạy code xóa đó thực hiện theo file của Anh để tạo
Cảm ơn Anh Nhiều!.
- Cách đây cũng không lâu tôi có tạo menu tiếng việt nhưng tôi sử dụng "Custom UI Editor For Microsoft Office"; Phần tiếng việt tôi sử dụng file tạo chuỗi "Tao chuoi cho Custom UI Editor" Trên GPE do Anh siwtom viết. Với cách đó tôi đã tạo ra được Menu tiếng việt nó chỉ thực hiện được với file .xlsm còn file .xlsb không thực hiện được. Nếu file của Anh thực hiện được nhanh và cả file định dạng .xlsb thì thật tốt; Nhưng tôi chưa hiểu cách dùng. Mong Anh hướng dẫn chi tiết hơn với file Ribbon Creator.

Mã:
[/COLOR]<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"><!-- Thêm the? mo´i va`o Ribbon -->
<ribbon>
<tabs>
<tab id="MyCustomTab" label="TỔNG HỢP DỮ LIỆU" insertAfterMso="TabHome">
<group id="customGroup3" label="XÓA DANH SÁCH">
<button id="customButton35" label="Xóa dữ liệu báo cáo" size="large" onAction="Xoa_du_lieu_bao_cao" imageMso="TableDeleteRowsAndColumnsMenuWord" />
<button id="customButton36" label="Xóa dữ liệu báo cáo tổng hợp" size="large" onAction="Xoa_du_lieu_bao_cao_tong_hop" imageMso="TableDeleteRowsAndColumnsMenuWord" />


</group>


</tab>
</tabs>
</ribbon>
</customUI>


[COLOR=#000099]
 

File đính kèm

Upvote 0
File này của Bạn còn lỗi đó nha ...

Nếu sau 3 ngày mà Bạn chưa tìm ra lỗi và xác nhận là chưa tìm ra thì Mạnh nói ...Còn cứ khẳng định là không thì Mạnh Ứ nói ....
Nói thật lòng và chân thành đó nha ...Mạnh không hàm ý nhỏ nhặt ...--=0//**/--=--

Thân

Kiều Mạnh
Chuyện có lỗi là bình thường.
Nếu người dùng sử dụng gặp lỗi thì họ sẽ la lên, lúc đó tôi sẽ tìm cách sửa. Còn nếu có lỗi mà dùng không gặp lỗi thì thiết nghĩ cũng không cần phải sửa --=0.

File này tôi thấy còn có trường hợp cần đề phòng đó là file được chọn đang mở. Không biết có phải bạn nói cái này không. Tôi cũng đang chờ xem có ai la lên thì tôi sửa còn không thì khi nào có gì cập nhật sửa một lần.
 
Upvote 0
Chào Anh!.
Ví dụ: Tôi có file TD; Trong file có code xóa dữ liệu; Tôi muốn tạo menu xóa dữ liệu bằng tiếng việt để chạy code xóa đó thực hiện theo file của Anh để tạo
Cảm ơn Anh Nhiều!.
- Cách đây cũng không lâu tôi có tạo menu tiếng việt nhưng tôi sử dụng "Custom UI Editor For Microsoft Office"; Phần tiếng việt tôi sử dụng file tạo chuỗi "Tao chuoi cho Custom UI Editor" Trên GPE do Anh siwtom viết. Với cách đó tôi đã tạo ra được Menu tiếng việt nó chỉ thực hiện được với file .xlsm còn file .xlsb không thực hiện được. Nếu file của Anh thực hiện được nhanh và cả file định dạng .xlsb thì thật tốt; Nhưng tôi chưa hiểu cách dùng. Mong Anh hướng dẫn chi tiết hơn với file Ribbon Creator.

Mã:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"><!-- Thêm the? mo´i va`o Ribbon -->
<ribbon>
<tabs>
<tab id="MyCustomTab" label="TỔNG HỢP DỮ LIỆU" insertAfterMso="TabHome">
<group id="customGroup3" label="XÓA DANH SÁCH">
<button id="customButton35" label="Xóa dữ liệu báo cáo" size="large" onAction="Xoa_du_lieu_bao_cao" imageMso="TableDeleteRowsAndColumnsMenuWord" />
<button id="customButton36" label="Xóa dữ liệu báo cáo tổng hợp" size="large" onAction="Xoa_du_lieu_bao_cao_tong_hop" imageMso="TableDeleteRowsAndColumnsMenuWord" />


</group>


</tab>
</tabs>
</ribbon>
</customUI>

File TD.xlsm đính kèm là tôi đã làm cho bạn rồi. Còn cách làm thì bạn khai báo như file Ribbon TD.xlsm như file đính kèm. Sau đó bấm vào nút Create Ribbon và chọn file bạn muốn thêm Ribbon.
 

File đính kèm

Upvote 0
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
Mình có một đoạn code sử dụng cho nhiều file excel, nếu như mỗi file excel bỏ code vào thì phải thực hiện trên rất nhiều file(file có cấu trúc giống nhau) có cách nào mình tạo thành một Add In và luôn hiện trên thanh Ribbon để sử dụng cho tiện không bạn. Mình đã thử chuyển sang đuôi .xlsm nhưng không hiện lên thanh Ribbon được. Mong bạn chỉ giúp.
Chân thành cảm ơn
 
Upvote 0
File TD.xlsm đính kèm là tôi đã làm cho bạn rồi. Còn cách làm thì bạn khai báo như file Ribbon TD.xlsm như file đính kèm. Sau đó bấm vào nút Create Ribbon và chọn file bạn muốn thêm Ribbon.
Cảm ơn Anh. Anh ơi Nếu file Ribbon của Anh tại cột "imageMso" Nếu là ta chọn cell nào và chọn hình tại mục insertimageMso thì tự điền nội dung vào thì tôt, Nếu không được mà phải nhập nội dung để tạo hình imageMso thì thật là lâu!./
 
Upvote 0
Cảm ơn Anh. Anh ơi Nếu file Ribbon của Anh tại cột "imageMso" Nếu là ta chọn cell nào và chọn hình tại mục insertimageMso thì tự điền nội dung vào thì tôt, Nếu không được mà phải nhập nội dung để tạo hình imageMso thì thật là lâu!./
Vui lòng đọc hết các bài trong topic này.
 
Upvote 0
Mình có một đoạn code sử dụng cho nhiều file excel, nếu như mỗi file excel bỏ code vào thì phải thực hiện trên rất nhiều file(file có cấu trúc giống nhau) có cách nào mình tạo thành một Add In và luôn hiện trên thanh Ribbon để sử dụng cho tiện không bạn. Mình đã thử chuyển sang đuôi .xlsm nhưng không hiện lên thanh Ribbon được. Mong bạn chỉ giúp.
Chân thành cảm ơn

Bạn phải chuyển sang đuôi xlam thì mới tạo add-in được chứ nhỉ !
 
Upvote 0
Cũng không phải cứ save dạng xlam là được. Nếu có Macro sự kiện thì phải biết dùng class mới tạo được add in.

Mình đã chuyển sang đuôi xlam nhưng vẫn không có hiện lên thanh Ribbon. Mình gửi Code và file để bạn xem giúp mình.
Option Explicit
Sub TONGHOP()
Dim Ws As Worksheet, Arr, dArr, I&, K&
ReDim dArr(1 To 100000, 1 To 29)
Application.ScreenUpdating = False
For Each Ws In Worksheets
If Ws.Name = "MP" Or Ws.Name = "DA" Or Ws.Name = "SVN" Then
Arr = Ws.Range(Ws.[A5], Ws.[A6500].End(3)).Resize(, 29).Value
For I = 1 To UBound(Arr)
K = K + 1
dArr(K, 1) = K
dArr(K, 2) = Arr(I, 3)
dArr(K, 3) = Arr(I, 7)
dArr(K, 4) = Arr(I, 9)
dArr(K, 5) = Arr(I, 11)
dArr(K, 6) = Arr(I, 12)
dArr(K, 23) = "=sum(RC[-1]:RC[-16])"
dArr(K, 24) = "=RC[1]*RC[-19]"
dArr(K, 25) = Arr(I, 5)
dArr(K, 26) = "=IF(RC[-3]>RC[-2],""NG"",""OK"")"
dArr(K, 27) = "=RC[-4]-RC[-3]"
dArr(K, 28) = Arr(I, 13)
dArr(K, 29) = Arr(I, 8)
Next I
End If
Next Ws
With Sheets("Ton Kho")
.Range(.[A5], .[A65000].End(3)).Resize(, 29).Borders.LineStyle = 0
.Range(.[A5], .[A65000].End(3)).Resize(, 29).ClearContents
If K Then
.Range("A5").Resize(K, 29) = dArr
.Range("A5").Resize(K, 29).Borders.LineStyle = 1
End If
End With
Application.ScreenUpdating = True
End Sub
Cảm ơn bạn
 

File đính kèm

Upvote 0
Mình đã chuyển sang đuôi xlam nhưng vẫn không có hiện lên thanh Ribbon. Mình gửi Code và file để bạn xem giúp mình.
Option Explicit
Sub TONGHOP()
Dim Ws As Worksheet, Arr, dArr, I&, K&
ReDim dArr(1 To 100000, 1 To 29)
Application.ScreenUpdating = False
For Each Ws In Worksheets
If Ws.Name = "MP" Or Ws.Name = "DA" Or Ws.Name = "SVN" Then
Arr = Ws.Range(Ws.[A5], Ws.[A6500].End(3)).Resize(, 29).Value
For I = 1 To UBound(Arr)
K = K + 1
dArr(K, 1) = K
dArr(K, 2) = Arr(I, 3)
dArr(K, 3) = Arr(I, 7)
dArr(K, 4) = Arr(I, 9)
dArr(K, 5) = Arr(I, 11)
dArr(K, 6) = Arr(I, 12)
dArr(K, 23) = "=sum(RC[-1]:RC[-16])"
dArr(K, 24) = "=RC[1]*RC[-19]"
dArr(K, 25) = Arr(I, 5)
dArr(K, 26) = "=IF(RC[-3]>RC[-2],""NG"",""OK"")"
dArr(K, 27) = "=RC[-4]-RC[-3]"
dArr(K, 28) = Arr(I, 13)
dArr(K, 29) = Arr(I, 8)
Next I
End If
Next Ws
With Sheets("Ton Kho")
.Range(.[A5], .[A65000].End(3)).Resize(, 29).Borders.LineStyle = 0
.Range(.[A5], .[A65000].End(3)).Resize(, 29).ClearContents
If K Then
.Range("A5").Resize(K, 29) = dArr
.Range("A5").Resize(K, 29).Borders.LineStyle = 1
End If
End With
Application.ScreenUpdating = True
End Sub
Cảm ơn bạn
Anh chị và các bạn nào biết cách làm cho Add In hiện lên thanh Ribbon thì chỉ mình cách làm với.
chân thành cảm ơn.
 
Upvote 0
Bạn thử mở trên máy khác hoặc nhờ người khác test xem sao chứ khi gửi lên là tôi đã thử rồi.
Mình đã test trên 3 máy đều phát sinh lỗi giống nhau:
Máy 1: Win7+Office 2007
Máy 2: Win7+Office 2010
Máy 3: Win10+Office 2013
Cả 3 máy này đều sử dụng win và office 32 bit
Trình tự mình làm như sau:
1. Copy file Stock paste Vào: C:\Users\Administrator\AppData\Roaming\Microsoft\AddIns
2. Mở file ecxel lên chọn File\Option\Add-In\Go...[Manage]\Browse...tiếp theo chọn file Stock trong đường dẫn trên và cuối cùng là OK.
Sau đó mình thấy báo lỗi như bài #32
Bạn thử kiểm tra Code lại một lần nữa xem sao
Cảm ơn bạn nhiều
 
Upvote 0
Bạn thử mở trên máy khác hoặc nhờ người khác test xem sao chứ khi gửi lên là tôi đã thử rồi.
Anh chị và các bạn download file bài #31 test giúp mình với. Theo như bạn huuthang_bd nói đã test OK nhưng mình test thì báo lỗi, không biết có phải do máy của mình có vấn đề.
Chân thành cảm ơn
 
Upvote 0
Anh chị và các bạn download file bài #31 test giúp mình với. Theo như bạn huuthang_bd nói đã test OK nhưng mình test thì báo lỗi, không biết có phải do máy của mình có vấn đề.
Chân thành cảm ơn
Máy của mình cũng báo lỗi (Win 10 32bit, Excel 2016).
 
Upvote 0
Tôi thì thử trên cả 2 máy của tôi đều được (Win10+Ex2007 và Win7+Ex2010).
Thôi thì tôi giữ nguyên phần macro của bạn không chỉnh sửa gì cả, chỉ thêm phần ribbon cho bạn.
Nhưng tôi cũng nói trước là nếu trên file của bạn không có sheet "Ton kho" thì code sẽ bị lỗi đấy nhé.
 

File đính kèm

Upvote 0
Tôi thì thử trên cả 2 máy của tôi đều được (Win10+Ex2007 và Win7+Ex2010).
Thôi thì tôi giữ nguyên phần macro của bạn không chỉnh sửa gì cả, chỉ thêm phần ribbon cho bạn.
Nhưng tôi cũng nói trước là nếu trên file của bạn không có sheet "Ton kho" thì code sẽ bị lỗi đấy nhé.
Cảm ơn bạn,
Lần này mình thấy không có báo lỗi. Cho mình hỏi tí xíu Trong code mình thấy có 2 câu khác với code hiện tại của mình, có phải là nhờ 2 câu code này mà Add In được hiện lên thanh Ribbon? Hay còn những Module khác mà được ẩn đi. Mình đang muốn học hỏi mong bạn chỉ dẫn.
2 câu khác với code hiện tại là:
Sub TONGHOP(RBCtrl As IRibbonControl)
For Each WS In ActiveWorkbook.Worksheets
 
Upvote 0
Ngoài vấn đề tạo Ribbon Menu, huuthang_bd làm nốt luôn cái việc tạo Cell Menu luôn đi cho nó máu! Kiểu hình dưới đây:
 

File đính kèm

  • CellMenu.jpg
    CellMenu.jpg
    51.4 KB · Đọc: 198
Upvote 0
Ngoài vấn đề tạo Ribbon Menu, huuthang_bd làm nốt luôn cái việc tạo Cell Menu luôn đi cho nó máu! Kiểu hình dưới đây:
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
 
Upvote 0
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

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

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

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
Upvote 0
Chào các anh . E muốn nội dung trong comboBox của Ribbon khi mở file lên mặc định tự chọn ví dụ là tháng 5 chẳng hạn thì phải sửa code hoặc custum UI như nào vậy ạ. E cảm ơn
Mã:
<!-- Ngay: 06/01/2018-->
<!-- Chuong trinh tao Ribbon tieng viet -->
<!-- Tac gia: Le Van Tan -->
<!-- Cam on ban da su dung chuong trinh !!! -->
<!-- Rat mong nhan duoc su gop y de chuong trinh ngay cang hoan thien va ho tro tot cho nguoi dung -->
<!-- Nguon tham khao: giaiphapexcel.com -->
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad= "onLoad">
<ribbon startFromScratch="false">
    <tabs>
      <!-- Doan nay dung de an Tab he thong-->
      <tab idMso="TabHome" getVisible="getVisible"/>
      <tab idMso="TabInsert" getVisible="getVisible"/>
      <tab idMso="TabPageLayoutExcel" getVisible="getVisible"/>
      <tab idMso="TabFormulas" getVisible="getVisible"/>
      <tab idMso="TabData" getVisible="getVisible"/>
      <tab idMso="TabReview" getVisible="getVisible"/>
      <tab idMso="TabView" getVisible="getVisible"/>
      <tab idMso="TabDeveloper" getVisible="getVisible"/>
      <tab idMso="TabAddIns" getVisible="getVisible"/>
      <!-- chi tiet noi dung lenh tao Ribbon-->
      <tab id="TAB1" insertBeforeMso="TabAddIns" label="Tháng hoạt động bằng tiếng việt">
        <group id="GROU1" label="Tháng hoạt động">
          <comboBox id="COMB1" onChange="onChangeCOM">
            <item id="ITEM1" label="Tháng 1"/>
            <item id="ITEM2" label="Tháng 2"/>
            <item id="ITEM3" label="Tháng 3"/>
            <item id="ITEM4" label="Tháng 4"/>
            <item id="ITEM5" label="Tháng 5"/>
            <item id="ITEM6" label="Tháng 6"/>
            <item id="ITEM7" label="Tháng 7"/>
            <item id="ITEM8" label="Tháng 8"/>
            <item id="ITEM9" label="Tháng 9"/>
            <item id="ITEM10" label="Tháng 10"/>
            <item id="ITEM11" label="Tháng 11"/>
            <item id="ITEM12" label="Tháng 12"/>
          </comboBox>
          <button id="BUTT4" onAction="onActionBUT" size="large" imageMso="HappyFace" label="Ẩn hiện ribbon"/>
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>
 

File đính kèm

Upvote 0

File đính kèm

Upvote 0
Thấy trong file có phần Image và GetImage mà tôi không biết sử dụng như thế nào.
Xin mọi người hướng dẫn cách sử dụng Image từ bên ngoài.
 
Upvote 0
Thấy trong file có phần Image và GetImage mà tôi không biết sử dụng như thế nào.
Xin mọi người hướng dẫn cách sử dụng Image từ bên ngoài.
Nếu công cụ bên này bạn sử dụng không thuận tiện thì tham khảo bên này xem, sẽ đơn giản hơn nhiều

LinkPage
 
Upvote 0
Thấy trong file có phần Image và GetImage mà tôi không biết sử dụng như thế nào.
Xin mọi người hướng dẫn cách sử dụng Image từ bên ngoài.
Bạn có thể dùng callback để nhập ảnh trên đĩa. Callback là "hàm gọi ngược", tức là hàm mà bạn phải cung cấp cho "người ta" và "người ta"sẽ gọi nó khi cần thiết. Khi nào thì cần thiết? Vd. bạn tạo ComboBo với 7 mục bất di bất dịch. Lúc đó bạn liệt kê các mục đó trong tập tin XML. Nhưng nếu bạn muốn tùy theo trạng thái ở thời điểm hiện hành mà quyết định số lượng các mục và nội dung của chúng thì làm thế nào? Thì cung cấp các callback thích hợp để "người ta" gọi khi cần thiết. Khi đó trong code của callback bạn sẽ kiểm tra điều kiện, trạng thái hiện hành để quyết định số lượng và nội dung cần có của các mục. Khi nào "người ta" gọi callback? vd. khi bạn click tam giác ngược. "người ta" phải biết được Combobox của bạn có mấy mục và nội dung của chúng vì "người ta" phải hiển thị chúng trong danh sách thả xuống. Vì thế người ta phải gọi callback getItemCount để xac định số lượng mục. Nhiệm vụ code của bạn là phải trả về số lượng. Vd. trả về 7. Lúc này người ta sẽ gọi callback getItemLabel 7 lần để lấy nội dung cho 7 mục. Người ta cũng gọi callback khi code gọi phương thức Invalidate hoặc InvaidateControl của interface IRibbon.

Về ComboBox nói trên bạn cũng có thể đọc bài của tôi


Tương tự như callback getImage. Người ta sẽ gọi callback vào thời điểm vd. "Chào buổi sáng", khi code gọi Invalidate***

Giả sử bạn có
Mã:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
  <ribbon>
    <tabs>
      <tab id="Tab1" label="The cua toi">
        <group id="Group1" label="Nhom 1">
          <button id="TaiKhoan" onAction="hichic" label="test button" getImage="blala" size="large" />
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>
và giả sử bạn muốn nhập ảnh "D:\bebe.jpg". Thế thì code trong tập tin là
Mã:
'Callback for TaiKhoan onAction
Sub hichic(control As IRibbonControl)
'    ...
End Sub

'Callback for TaiKhoan getImage
Sub blala(control As IRibbonControl, ByRef returnedVal)
    Set returnedVal = LoadPicture("d:\bebe.jpg")
End Sub

Parametr returnedVal nó như cái "khay" người ta giơ ra. Nhiệm vụ code của bạn là phải đặt kết quả vào cái "khay" đó để người ta lấy về và sử dụng.

-------
Cũng có thể đọc


Trong đó có các link tới các bài viết trước đó của tôi.
 
Upvote 0
Nếu công cụ bên này bạn sử dụng không thuận tiện thì tham khảo bên này xem, sẽ đơn giản hơn nhiều

LinkPage
thanks bạn nhá. File sử dụng cũng rất hay
Bài đã được tự động gộp:

Bạn có thể dùng callback để nhập ảnh trên đĩa. Callback là "hàm gọi ngược", tức là hàm mà bạn phải cung cấp cho "người ta" và "người ta"sẽ gọi nó khi cần thiết. Khi nào thì cần thiết? Vd. bạn tạo ComboBo với 7 mục bất di bất dịch. Lúc đó bạn liệt kê các mục đó trong tập tin XML. Nhưng nếu bạn muốn tùy theo trạng thái ở thời điểm hiện hành mà quyết định số lượng các mục và nội dung của chúng thì làm thế nào? Thì cung cấp các callback thích hợp để "người ta" gọi khi cần thiết. Khi đó trong code của callback bạn sẽ kiểm tra điều kiện, trạng thái hiện hành để quyết định số lượng và nội dung cần có của các mục. Khi nào "người ta" gọi callback? vd. khi bạn click tam giác ngược. "người ta" phải biết được Combobox của bạn có mấy mục và nội dung của chúng vì "người ta" phải hiển thị chúng trong danh sách thả xuống. Vì thế người ta phải gọi callback getItemCount để xac định số lượng mục. Nhiệm vụ code của bạn là phải trả về số lượng. Vd. trả về 7. Lúc này người ta sẽ gọi callback getItemLabel 7 lần để lấy nội dung cho 7 mục. Người ta cũng gọi callback khi code gọi phương thức Invalidate hoặc InvaidateControl của interface IRibbon.

Về ComboBox nói trên bạn cũng có thể đọc bài của tôi


Tương tự như callback getImage. Người ta sẽ gọi callback vào thời điểm vd. "Chào buổi sáng", khi code gọi Invalidate***

Giả sử bạn có
Mã:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
  <ribbon>
    <tabs>
      <tab id="Tab1" label="The cua toi">
        <group id="Group1" label="Nhom 1">
          <button id="TaiKhoan" onAction="hichic" label="test button" getImage="blala" size="large" />
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>
và giả sử bạn muốn nhập ảnh "D:\bebe.jpg". Thế thì code trong tập tin là
Mã:
'Callback for TaiKhoan onAction
Sub hichic(control As IRibbonControl)
'    ...
End Sub

'Callback for TaiKhoan getImage
Sub blala(control As IRibbonControl, ByRef returnedVal)
    Set returnedVal = LoadPicture("d:\bebe.jpg")
End Sub

Parametr returnedVal nó như cái "khay" người ta giơ ra. Nhiệm vụ code của bạn là phải đặt kết quả vào cái "khay" đó để người ta lấy về và sử dụng.

-------
Cũng có thể đọc


Trong đó có các link tới các bài viết trước đó của tôi.
cám ơn anh nhá.
 
Lần chỉnh sửa cuối:
Upvote 0
các tiền bối cho em hỏi là có các nào chỉnh sửa addin đã tạo được thành file không ạ
 
Upvote 0
Upvote 0
em vẫn chưa hiểu lắm ạ. ý em là có một file excel đã tạo sẵn ribbon rồi. giờ có cách nào em có thể chỉnh sửa được ribbon trong file excel đó không ạ. chứ em chuyển isaddin sang false rồi nhưng không rõ làm thế nào để cho thể sửa được.
Rõ ràng ở bài 69 bạn nói
Mã:
các tiền bối cho em hỏi là có các nào chỉnh sửa addin đã tạo được thành file không ạ
nên mình mới chỉ bạn chuyển addin thành file Excel
Nếu file đã có ribon rồi thì bạn dùng addin ở bài 1 và làm theo hướng dẫn ở đây để chỉnh sữa lại Ribbon theo ý thích
 
Upvote 0
Rõ ràng ở bài 69 bạn nói
Mã:
các tiền bối cho em hỏi là có các nào chỉnh sửa addin đã tạo được thành file không ạ
nên mình mới chỉ bạn chuyển addin thành file Excel
Nếu file đã có ribon rồi thì bạn dùng addin ở bài 1 và làm theo hướng dẫn ở đây để chỉnh sữa lại Ribbon theo ý thích
dạ. tại em có file excel mà người ta đã tạo sẵn ribbon rồi. giờ em muốn chỉnh sửa lại theo ý mình dựa trên ribbon đó. nhưng không biết làm thế nào ạ.
 
Upvote 0
dạ. tại em có file excel mà người ta đã tạo sẵn ribbon rồi. giờ em muốn chỉnh sửa lại theo ý mình dựa trên ribbon đó. nhưng không biết làm thế nào ạ.
Có nghĩa là bạn mở tập tin Excel là có menu riêng trên ribbon. Đó không phải là Addin vd. XLAM.

1. Mở tập tin -> Alt + F11 -> sẽ thấy code dính dáng tới menu. Sửa code cho nhu cầu của mình.

2. Mở Custom UI Editor rồi mở tập tin Excel. Sẽ nhìn thấy code XML. Chỉnh sửa theo nhu cầu của mình.

Nếu không biết tự chỉnh sửa thì nhờ người khác. Mà đã nhờ thì không thể chỉ dùng "nước bọt" được. Phải đính kèm tập tin và giải thích rõ mình muốn gì.
 
Upvote 0
Có nghĩa là bạn mở tập tin Excel là có menu riêng trên ribbon. Đó không phải là Addin vd. XLAM.

1. Mở tập tin -> Alt + F11 -> sẽ thấy code dính dáng tới menu. Sửa code cho nhu cầu của mình.

2. Mở Custom UI Editor rồi mở tập tin Excel. Sẽ nhìn thấy code XML. Chỉnh sửa theo nhu cầu của mình.

Nếu không biết tự chỉnh sửa thì nhờ người khác. Mà đã nhờ thì không thể chỉ dùng "nước bọt" được. Phải đính kèm tập tin và giải thích rõ mình muốn gì.
tại em mở file excel thì không thấy bất kỳ một đoạn macro nào mà các riibon vẫn hoạt động bình thuong. nhưng mà em thấy trong file có thêm một sheet hình như đã bị xóa bằng lệnh. liệu có phải macro này đã để trong sheet này không ạ.
221537
 
Upvote 0
tại em mở file excel thì không thấy bất kỳ một đoạn macro nào mà các riibon vẫn hoạt động bình thuong.
Có nghĩa là thế nào? Nói thì nói rõ, hết ý. Bạn mở tập tin nọ thì thấy trên ribbon có những mục menu "lạ"? Thế khi không mở tập tin đó mà mở các tập tin khác thì có các mục menu kia không? Nếu không có thì thủ phạm là tập tin kia. Nó có thể chỉ dùng code đế thêm các mục menu hoặc dùng nội dung XML + code như tôi nói. Khi tôi đề nghị tập tin tức tôi nói về tập tin Excel. Ảnh chỉ để nhìn thôi, chả đoán được gì nhiều.
 
Upvote 0
Có nghĩa là thế nào? Nói thì nói rõ, hết ý. Bạn mở tập tin nọ thì thấy trên ribbon có những mục menu "lạ"? Thế khi không mở tập tin đó mà mở các tập tin khác thì có các mục menu kia không? Nếu không có thì thủ phạm là tập tin kia. Nó có thể chỉ dùng code đế thêm các mục menu hoặc dùng nội dung XML + code như tôi nói. Khi tôi đề nghị tập tin tức tôi nói về tập tin Excel. Ảnh chỉ để nhìn thôi, chả đoán được gì nhiều.
tức là em menu này chỉ có trên file excel này, nhưng em muốn xem code để chỉnh sửa các ribbon kia theo ý mình link đến các sheet tương ứng hoặc thêm danh sách vào menu này. nhưng em không thấy đoạn macro nào trên file này cả. mong bác giúp em ạ.
 

File đính kèm

Upvote 0
tức là em menu này chỉ có trên file excel này, nhưng em muốn xem code để chỉnh sửa các ribbon kia theo ý mình link đến các sheet tương ứng hoặc thêm danh sách vào menu này. nhưng em không thấy đoạn macro nào trên file này cả. mong bác giúp em ạ.
Tải Custom UI Editor ở bài #7


Giải nén -> cài đặt -> mở Custom UI Editor -> chọn mở tập tin book.xlsm.

Sẽ nhín thấy menu được tạo. Về code cho các mục menu chỉ có tác giả biết họ muốn làm gì.

Trong VBE nhìn thấy module lạ Sheet54 kiểu giống như ThisWorkbook.

Nếu bạn muốn tự tìm hiểu thì hãy đọc các bài mà tôi (siwtom) đã viết trong chủ đề đó.
 
Lần chỉnh sửa cuối:
Upvote 0
Tải Custom UI Editor ở bài #7


Giải nén -> cài đặt -> mở Custom UI Editor -> chọn mở tập tin book.xlsm.

Sẽ nhín thấy menu được tạo. Về code cho các mục menu chỉ có tác giả biết họ muốn làm gì.

Trong VBE nhìn thấy module lạ Sheet54 kiểu giống như ThisWorkbook.

Nếu bạn muốn tự tìm hiểu thì hãy đọc các bài mà tôi (siwtom) đã viết trong chủ đề đó.
trong file này có những module mà em không thể nào xem được code bên trong. không biết liệu đây có phải do tác giả ẩn đi không ạ. 221558
 
Upvote 0
trong file này có những module mà em không thể nào xem được code bên trong. không biết liệu đây có phải do tác giả ẩn đi không ạ. View attachment 221558
Trong file đã xóa hết code.
Còn đây là toàn bộ code tạo Ribbon trong file của bạn

HTML:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="UX_onLoad">
<!--For Office 2007, use 2006/01 instead of 2009/07-->

    <commands>
        <command idMso="Help" enabled="false"/>
        <command idMso="WindowClose" enabled="true"/>
        <command idMso="WindowRestore" enabled="true"/>
        <command idMso="WindowMinimize" enabled="true"/>
    </commands>

    <ribbon startFromScratch="false">
        <tabs>
            <tab idMso="TabHome" getVisible="UX_Visible"/>
            <tab idMso="TabInsert" getVisible="UX_Visible"/>
            <tab idMso="TabPageLayoutExcel" getVisible="UX_Visible"/>
            <tab idMso="TabFormulas" getVisible="UX_Visible"/>
            <tab idMso="TabData" getVisible="UX_Visible"/>
            <tab idMso="TabReview" getVisible="UX_Visible"/>
            <tab idMso="TabView" getVisible="UX_Visible"/>
            <tab idMso="TabDeveloper" getVisible="UX_Visible"/>
            <tab idMso="TabAddIns" getVisible="UX_Visible"/>
            <!-- tab idMso="TabPrintPreview" getVisible="UX_Visible"/ -->
<tab id="TAB400" getLabel="UX_Label" insertBeforeMso='TabHome' getKeytip="UX_Keytip" getVisible="UX_Visible">
<group id="GRP420" autoScale="false" getLabel="UX_Label" centerVertically="false" getVisible="UX_Visible" imageMso="ConnectedToolSyncMenu">
    <toggleButton id="CTL421" size="large" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_ActionTgl" imageMso="ConnectedToolSyncMenu" getPressed="UX_PressTgl"/>
    <checkBox id="CTL422" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_ActionTgl" getPressed="UX_PressTgl"/>
    <checkBox id="CTL423" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_ActionTgl" getPressed="UX_PressTgl"/>
    <checkBox id="CTL424" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_ActionTgl" getPressed="UX_PressTgl"/>
</group>

<group id="GRP120" autoScale="false" getLabel="UX_Label" centerVertically="false" getVisible="UX_Visible" imageMso="ViewGoForward">

<gallery id="GLR1111" size="large" getLabel="UX_Label" onAction="OnActionGLR" imageMso="TasksUpdate">
    <button id="BTN1110" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="AccessTableContacts"/>
    <button id="BTN1116" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="AddOrRemoveAttendees"/>
    <button id="BTN1115" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ResourceUsageViewGallery"/>

       <button id="BTN1101" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                       
    <button id="BTN1102" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                     
    <button id="BTN1103" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                     
    <button id="BTN1104" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/> 

       <button id="BTN11111" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                       
    <button id="BTN11112" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                     
    <button id="BTN11113" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                     
    <button id="BTN11114" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>     
    <button id="BTN11115" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                     
    <button id="BTN11116" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                     
    <button id="BTN11117" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                               
</gallery>
    <button id="BTN1201" size="large" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="CreateReportFromWizard"/> 
    <button id="BTN1202" size="large" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewWorkflowReports"/>

</group>

<!--*******************************************************************-->

<group id="GRP520" autoScale="false" getLabel="UX_Label" centerVertically="false" getVisible="UX_Visible" imageMso="ViewGoForward">
    <button id="BTN5201" size="large" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="CalendarMonthDetailsSplitButton"/> 
<gallery id="GLR120" size="large" getLabel="UX_Label" onAction="OnActionGLR" imageMso="VersionsAndCheckout">
    <button id="BTN5202" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="GroupWindowAccess"/>
        <button id="BTN1211" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                       
    <button id="BTN1212" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                     
    <button id="BTN1213" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                     
    <button id="BTN1214" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>   
        <button id="BTN1215" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                       
    <button id="BTN1216" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                     
    <button id="BTN1217" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                     
    <button id="BTN1218" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                                 
</gallery>
</group>

<group id="GRP510" autoScale="false" getLabel="UX_Label" centerVertically="false" getVisible="UX_Visible" imageMso="ViewGoForward">
    <button id="BTN51011" size="large" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="CatalogMergeEditList"/>
<gallery id="GLR510" size="large" getLabel="UX_Label" onAction="OnActionGLR" imageMso="AddressBook">
    <button id="BTN51012" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="GroupResourceViewSimple"/>
    <button id="BTN51013" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="BusinessCardInsertMenu"/>
       <button id="BTN5111" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                       
    <button id="BTN5112" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                     
    <button id="BTN5113" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                     
    <button id="BTN5114" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>   
</gallery>
</group>

<group id="GRP610" autoScale="false" getLabel="UX_Label" centerVertically="false" getVisible="UX_Visible" imageMso="LocalShareNotebook">
<gallery id="GLR620" size="large" getLabel="UX_Label" onAction="OnActionGLR" imageMso="LocalShareNotebook">
      <button id="BTN1203" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" image="vat"/>
    <button id="BTN1204" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="GoRtlDown"/>
    <button id="BTN1205" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="GoLtrDown"/>

    <button id="BTN6110" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="LocalShareNotebook"/>
    <button id="BTN6111" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="JapanesePostcardDialog"/>
    <button id="BTN6112" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="JapanesePostcardCreateAddressSide"/>

    <button id="BTN6201" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="CreateReport"/> 
    <button id="BTN6202" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="FunctionsDateTimeInsertGallery"/>
    <button id="BTN6203" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="GroupProjectSchedule"/>
    <button id="BTN6204" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="BusinessFormWizard"/> 

        <button id="BTN6211" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/>                                       
    <button id="BTN6212" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/>                                     
    <button id="BTN6213" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/>                                                                 
</gallery>

<gallery id="GRP540" size="large" getLabel="UX_Label" onAction="OnActionGLR" imageMso="AddResourcesFromActiveDirectory">
    <button id="CTL5401" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="AddResourcesFromActiveDirectory"/>
    <button id="CTL5402" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ResourceAllViewsGallery"/>
    <button id="CTL5403" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="AnonymousAccess"/>
    <button id="BTN6217" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/>                                     
    <button id="BTN6218" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/> 
    <button id="BTN6216" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/>   
</gallery>
<gallery id="GRP5430" size="large" getLabel="UX_Label" onAction="OnActionGLR" imageMso="MenuDailyTaskList">
      <button id="CTL5431" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="MenuDailyTaskList"/>
    <button id="CTL5432" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="MaterialResourceInsert"/>
    <button id="CTL5433" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="HappyFace"/>
    <button id="BTN6214" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/>   
        <button id="BTN6215" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/>
</gallery>

</group>
<group id="GRP5450" autoScale="false" getLabel="UX_Label" centerVertically="false" getVisible="UX_Visible" imageMso="ViewGoForward">
<gallery id="GRP5456" size="large" getLabel="UX_Label" onAction="OnActionGLR" imageMso="GanttChartViewGallery">
      <button id="CTL5451" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="AddContentType"/>
      <button id="CTL5452" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="WorkflowComplete"/>
    <button id="CTL5453" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="WorkflowComplete"/>
    <button id="CTL5454" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="WorkflowComplete"/>
    <button id="CTL5455" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ContactCardUntagForAlerts"/>
</gallery>

<gallery id="GLR680" size="large" getLabel="UX_Label" onAction="OnActionGLR" imageMso="ChangePictureFromScanner">
    <button id="CTL6702" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="WorkflowComplete"/>
    <button id="CTL6703" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="WorkflowComplete"/>
    <button id="CTL6705" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="WorkflowComplete"/>
    <button id="CTL6706" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="WorkflowComplete"/>

    <button id="CTL6704" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ContactCardUntagForAlerts"/>
    <button id="CTL6701" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ChangePictureFromScanner"/>

        <button id="BTN6811" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/>                                       
    <button id="BTN6812" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/>                                     
    <button id="BTN6813" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/>                                     
    <button id="BTN6814" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/>                                                   
</gallery>
</group>

<!--*******************************************************************-->


</tab>
        </tabs>
    </ribbon>
</customUI>
 
Upvote 0
Trong file đã xóa hết code.
Còn đây là toàn bộ code tạo Ribbon trong file của bạn

HTML:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="UX_onLoad">
<!--For Office 2007, use 2006/01 instead of 2009/07-->

    <commands>
        <command idMso="Help" enabled="false"/>
        <command idMso="WindowClose" enabled="true"/>
        <command idMso="WindowRestore" enabled="true"/>
        <command idMso="WindowMinimize" enabled="true"/>
    </commands>

    <ribbon startFromScratch="false">
        <tabs>
            <tab idMso="TabHome" getVisible="UX_Visible"/>
            <tab idMso="TabInsert" getVisible="UX_Visible"/>
            <tab idMso="TabPageLayoutExcel" getVisible="UX_Visible"/>
            <tab idMso="TabFormulas" getVisible="UX_Visible"/>
            <tab idMso="TabData" getVisible="UX_Visible"/>
            <tab idMso="TabReview" getVisible="UX_Visible"/>
            <tab idMso="TabView" getVisible="UX_Visible"/>
            <tab idMso="TabDeveloper" getVisible="UX_Visible"/>
            <tab idMso="TabAddIns" getVisible="UX_Visible"/>
            <!-- tab idMso="TabPrintPreview" getVisible="UX_Visible"/ -->
<tab id="TAB400" getLabel="UX_Label" insertBeforeMso='TabHome' getKeytip="UX_Keytip" getVisible="UX_Visible">
<group id="GRP420" autoScale="false" getLabel="UX_Label" centerVertically="false" getVisible="UX_Visible" imageMso="ConnectedToolSyncMenu">
    <toggleButton id="CTL421" size="large" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_ActionTgl" imageMso="ConnectedToolSyncMenu" getPressed="UX_PressTgl"/>
    <checkBox id="CTL422" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_ActionTgl" getPressed="UX_PressTgl"/>
    <checkBox id="CTL423" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_ActionTgl" getPressed="UX_PressTgl"/>
    <checkBox id="CTL424" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_ActionTgl" getPressed="UX_PressTgl"/>
</group>

<group id="GRP120" autoScale="false" getLabel="UX_Label" centerVertically="false" getVisible="UX_Visible" imageMso="ViewGoForward">

<gallery id="GLR1111" size="large" getLabel="UX_Label" onAction="OnActionGLR" imageMso="TasksUpdate">
    <button id="BTN1110" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="AccessTableContacts"/>
    <button id="BTN1116" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="AddOrRemoveAttendees"/>
    <button id="BTN1115" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ResourceUsageViewGallery"/>

       <button id="BTN1101" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                     
    <button id="BTN1102" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                   
    <button id="BTN1103" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                   
    <button id="BTN1104" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>

       <button id="BTN11111" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                     
    <button id="BTN11112" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                   
    <button id="BTN11113" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                   
    <button id="BTN11114" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>   
    <button id="BTN11115" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                   
    <button id="BTN11116" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                   
    <button id="BTN11117" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                             
</gallery>
    <button id="BTN1201" size="large" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="CreateReportFromWizard"/>
    <button id="BTN1202" size="large" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewWorkflowReports"/>

</group>

<!--*******************************************************************-->

<group id="GRP520" autoScale="false" getLabel="UX_Label" centerVertically="false" getVisible="UX_Visible" imageMso="ViewGoForward">
    <button id="BTN5201" size="large" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="CalendarMonthDetailsSplitButton"/>
<gallery id="GLR120" size="large" getLabel="UX_Label" onAction="OnActionGLR" imageMso="VersionsAndCheckout">
    <button id="BTN5202" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="GroupWindowAccess"/>
        <button id="BTN1211" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                     
    <button id="BTN1212" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                   
    <button id="BTN1213" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                   
    <button id="BTN1214" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/> 
        <button id="BTN1215" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                     
    <button id="BTN1216" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                   
    <button id="BTN1217" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                   
    <button id="BTN1218" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                               
</gallery>
</group>

<group id="GRP510" autoScale="false" getLabel="UX_Label" centerVertically="false" getVisible="UX_Visible" imageMso="ViewGoForward">
    <button id="BTN51011" size="large" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="CatalogMergeEditList"/>
<gallery id="GLR510" size="large" getLabel="UX_Label" onAction="OnActionGLR" imageMso="AddressBook">
    <button id="BTN51012" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="GroupResourceViewSimple"/>
    <button id="BTN51013" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="BusinessCardInsertMenu"/>
       <button id="BTN5111" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                     
    <button id="BTN5112" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                   
    <button id="BTN5113" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/>                                   
    <button id="BTN5114" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ViewGoForward"/> 
</gallery>
</group>

<group id="GRP610" autoScale="false" getLabel="UX_Label" centerVertically="false" getVisible="UX_Visible" imageMso="LocalShareNotebook">
<gallery id="GLR620" size="large" getLabel="UX_Label" onAction="OnActionGLR" imageMso="LocalShareNotebook">
      <button id="BTN1203" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" image="vat"/>
    <button id="BTN1204" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="GoRtlDown"/>
    <button id="BTN1205" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="GoLtrDown"/>

    <button id="BTN6110" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="LocalShareNotebook"/>
    <button id="BTN6111" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="JapanesePostcardDialog"/>
    <button id="BTN6112" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="JapanesePostcardCreateAddressSide"/>

    <button id="BTN6201" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="CreateReport"/>
    <button id="BTN6202" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="FunctionsDateTimeInsertGallery"/>
    <button id="BTN6203" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="GroupProjectSchedule"/>
    <button id="BTN6204" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="BusinessFormWizard"/>

        <button id="BTN6211" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/>                                     
    <button id="BTN6212" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/>                                   
    <button id="BTN6213" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/>                                                               
</gallery>

<gallery id="GRP540" size="large" getLabel="UX_Label" onAction="OnActionGLR" imageMso="AddResourcesFromActiveDirectory">
    <button id="CTL5401" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="AddResourcesFromActiveDirectory"/>
    <button id="CTL5402" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ResourceAllViewsGallery"/>
    <button id="CTL5403" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="AnonymousAccess"/>
    <button id="BTN6217" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/>                                   
    <button id="BTN6218" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/>
    <button id="BTN6216" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/> 
</gallery>
<gallery id="GRP5430" size="large" getLabel="UX_Label" onAction="OnActionGLR" imageMso="MenuDailyTaskList">
      <button id="CTL5431" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="MenuDailyTaskList"/>
    <button id="CTL5432" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="MaterialResourceInsert"/>
    <button id="CTL5433" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="HappyFace"/>
    <button id="BTN6214" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/> 
        <button id="BTN6215" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/>
</gallery>

</group>
<group id="GRP5450" autoScale="false" getLabel="UX_Label" centerVertically="false" getVisible="UX_Visible" imageMso="ViewGoForward">
<gallery id="GRP5456" size="large" getLabel="UX_Label" onAction="OnActionGLR" imageMso="GanttChartViewGallery">
      <button id="CTL5451" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="AddContentType"/>
      <button id="CTL5452" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="WorkflowComplete"/>
    <button id="CTL5453" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="WorkflowComplete"/>
    <button id="CTL5454" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="WorkflowComplete"/>
    <button id="CTL5455" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ContactCardUntagForAlerts"/>
</gallery>

<gallery id="GLR680" size="large" getLabel="UX_Label" onAction="OnActionGLR" imageMso="ChangePictureFromScanner">
    <button id="CTL6702" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="WorkflowComplete"/>
    <button id="CTL6703" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="WorkflowComplete"/>
    <button id="CTL6705" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="WorkflowComplete"/>
    <button id="CTL6706" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="WorkflowComplete"/>

    <button id="CTL6704" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ContactCardUntagForAlerts"/>
    <button id="CTL6701" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="ChangePictureFromScanner"/>

        <button id="BTN6811" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/>                                     
    <button id="BTN6812" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/>                                   
    <button id="BTN6813" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/>                                   
    <button id="BTN6814" getLabel="UX_Label" getVisible="UX_Visible" getEnabled="UX_Enabled" onAction="UX_Action" imageMso="OutlineDemoteToBodyText"/>                                                 
</gallery>
</group>

<!--*******************************************************************-->


</tab>
        </tabs>
    </ribbon>
</customUI>
thật ra thì code trong file nay em cũng đã xem được rồi, chỉ thắc mắc một điều là code của module bị xóa hết hay là chỉ bị ẩn đi thì em không rõ nhưng các ribbon này vẫn hoạt động bình thường và các form dùng code của module cũng vẫn hoạt động ạ. em dùng project explorer thì thấy có những module đó nhưng không hề thấy nó. và cũng không mở được. nếu nó bị xóa rồi thì làm sao các code đó vẫn hoạt động nhỉ221579
 
Upvote 0
Mã:
Private Sub nhaplieu(Ctrl As IRibbonControl)
Sheet5.Visible = xlSheetVisible
Sheet5.Select
End Sub
Private Sub cdps(Ctrl As IRibbonControl)
Sheet6.Visible = xlSheetVisible
Sheet6.Select
End Sub
Private Sub cdkt(Ctrl As IRibbonControl)
Sheet7.Visible = xlSheetVisible
Sheet7.Select
End Sub
Private Sub kqkd(Ctrl As IRibbonControl)
Sheet8.Visible = xlSheetVisible
Sheet8.Select
End Sub
Private Sub lctt(Ctrl As IRibbonControl)
Sheet9.Visible = xlSheetVisible
Sheet9.Select
End Sub
Private Sub tmbctc(Ctrl As IRibbonControl)
Sheet10.Visible = xlSheetVisible
Sheet10.Select
End Sub
nhờ anh chị giúp. em có dùng mã như trên để gán vào cho từng mục trên ribbon để di chuyển giữa các sheet nhưng số lượng sheet nhiều. có cách nào để tối ưu được mã này không ạ.
 
Upvote 0
Bạn có thể đặt tên của button là tên sheet và dùng code sau cho tất cả các button.
Mã:
Private Sub SelectSheet(Ctrl As IRibbonControl)
Sheets(Ctrl.ID).Visible = xlSheetVisible
Sheets(Ctrl.ID).Select
End Sub
 
Upvote 0
Bạn có thể đặt tên của button là tên sheet và dùng code sau cho tất cả các button.
Mã:
Private Sub SelectSheet(Ctrl As IRibbonControl)
Sheets(Ctrl.ID).Visible = xlSheetVisible
Sheets(Ctrl.ID).Select
End Sub
sao em đã thay ID của button bằng tên sheet rồi mà nó k chạy nhỉ. ví dụ sheet 5 là NLPS thì ID em để là NLPS hay là Sheet5 thì đều không được ạ.
 
Upvote 0
Upvote 0
dạ đây ạ. em đang làm theo như này ạ
- Trong nội dung XML có onLoad nhưng trong Module1 không có Sub OnLoad nên sẽ có lỗi và không có menu.

- Trong nội dung XML không có onAction nào được gán cho 3 nút "Nhập liệu", "Bảng cân đối", "Tổng hợp". Vì thế thậm chí nếu thêm Sub OnLoad thì khi nhấn vào 3 nút trên thì không thấy động tĩnh gì. Dụng ý dùng 3 nút kia chỉ để trang trí?

- Trong nội dung XML không có nút nào có onAction là SelectSheet, vậy nó có chỉ để làm vì?
------------
để di chuyển giữa các sheet nhưng số lượng sheet nhiều
Chả nhẽ tạo 20, 30 nút khi số sheet là vd. 20, 30? Nếu chỉ tạo 1 nút thì trong onAction của nó phải hiển thị vd. UserForm mà trên đó có 1 ComboBox với danh sách các sheet. Khi chọn sheet nào trong ComboBox thì hiển thị sheet đó. Nhưng sao lại phải tạo nút + UserForm + ComboBox? Thay cho tạo nút thì tạo ComboBox trên ribbon thôi. ComboBox đó sẽ có danh sách các sheet. Khi chọn sheet nào trong ComboBox thì hiển thị sheet đó. Thế thôi.

Trên đây chỉ là các lưu ý và gợi ý. Tôi không làm cho bạn vì tuy không mở Ribbon Creator.xlsm nhưng tôi đoán là nó dùng để tạo menu trên ribbon. Mà tôi thì không có hứng nghiên cứu cách dùng phần mềm thứ ba. Tôi tự tạo nội dung XML + dùng Custom UI Editor thôi.
 
Upvote 0
c
- Trong nội dung XML có onLoad nhưng trong Module1 không có Sub OnLoad nên sẽ có lỗi và không có menu.

- Trong nội dung XML không có onAction nào được gán cho 3 nút "Nhập liệu", "Bảng cân đối", "Tổng hợp". Vì thế thậm chí nếu thêm Sub OnLoad thì khi nhấn vào 3 nút trên thì không thấy động tĩnh gì. Dụng ý dùng 3 nút kia chỉ để trang trí?

- Trong nội dung XML không có nút nào có onAction là SelectSheet, vậy nó có chỉ để làm vì?
------------

Chả nhẽ tạo 20, 30 nút khi số sheet là vd. 20, 30? Nếu chỉ tạo 1 nút thì trong onAction của nó phải hiển thị vd. UserForm mà trên đó có 1 ComboBox với danh sách các sheet. Khi chọn sheet nào trong ComboBox thì hiển thị sheet đó. Nhưng sao lại phải tạo nút + UserForm + ComboBox? Thay cho tạo nút thì tạo ComboBox trên ribbon thôi. ComboBox đó sẽ có danh sách các sheet. Khi chọn sheet nào trong ComboBox thì hiển thị sheet đó. Thế thôi.

Trên đây chỉ là các lưu ý và gợi ý. Tôi không làm cho bạn vì tuy không mở Ribbon Creator.xlsm nhưng tôi đoán là nó dùng để tạo menu trên ribbon. Mà tôi thì không có hứng nghiên cứu cách dùng phần mềm thứ ba. Tôi tự tạo nội dung XML + dùng Custom UI Editor thôi.
em cảm ơn bác ạ. em đã hiểu ra rồi ạ. cần phải gán onAction là SelectSheet cho button thì đã chạy được rồi ạ.
 
Upvote 0
Bạn có thể đặt tên của button là tên sheet và dùng code sau cho tất cả các button.
Mã:
Private Sub SelectSheet(Ctrl As IRibbonControl)
Sheets(Ctrl.ID).Visible = xlSheetVisible
Sheets(Ctrl.ID).Select
End Sub
em có phát sinh thêm một vấn đề là nếu như cùng 2 button ở 2 tab khác nhau muốn đến 1 sheets thì lại không dùng code này được. bác giúp em sửa lại được không ạ. (vì em muốn thêm một vài sheet hay dùng sang tab home ạ.)
 
Lần chỉnh sửa cuối:
Upvote 0
em có phát sinh thêm một vấn đề là nếu như cùng 2 button ở 2 tab khác nhau muốn đến 1 sheets thì lại không dùng code này được. bác giúp em sửa lại được không ạ. (vì em muốn thêm một vài sheet hay dùng sang tab home ạ.)
Nếu vậy thì bạn sử dụng thuộc tính Tag thay cho ID, ID phải duy nhất còn Tag thì không. Đặt thuộc tính Tag của control là tên sheet, code trong VBA chỗ nào là ID thì thay bằng Tag.
 
Upvote 0
Anh giúp đỡ em: Em tạo menu có 3 nút button (tạo mới, hủy, lưu). Khi mở file, nút Hủy với lưu sẽ ẩn (hoặc đóng băng). Kích vào nút tạo mới thì 2 nút còn lại sẽ hiện và nút tạo mới đóng băng. Nhờ anh hướng dẫn với. Cảm ơn anh.
 
Upvote 0
Anh giúp đỡ em: Em tạo menu có 3 nút button (tạo mới, hủy, lưu). Khi mở file, nút Hủy với lưu sẽ ẩn (hoặc đóng băng). Kích vào nút tạo mới thì 2 nút còn lại sẽ hiện và nút tạo mới đóng băng. Nhờ anh hướng dẫn với. Cảm ơn anh.
Bạn tham khảo file này.
 

File đính kèm

Upvote 0
Nhờ anh xem, sao excel mở file bình thường thôi, file tạo mới nhưng kích chuột phải như hình.

PS. đã khắc được.
Mã:
Sub reset()

Application.CommandBars("Cell").Reset

End Sub
Nhưng nhờ anh xem sao lại bị lỗi như vậy
 

File đính kèm

  • anh loi.jpg
    anh loi.jpg
    270.5 KB · Đọc: 43
Lần chỉnh sửa cuối:
Upvote 0
bạn ơi cho hoi bài nào dạy cách tạo ribbon vậy. Thấy hay quá mà chưa biết tạo sao
 
Upvote 0
Em đã tắt macro nhưng khi mở file lên vẫn có tag ribbon mới (các button trên tag ribbon mới không sữ dụng được) chỉ mỗi file đó còn những file khác mở lên sẽ không thấy tag riboon mới.
 
Upvote 0
Em đã tắt macro nhưng khi mở file lên vẫn có tag ribbon mới (các button trên tag ribbon mới không sữ dụng được) chỉ mỗi file đó còn những file khác mở lên sẽ không thấy tag riboon mới.
Tắt macro nhưng vẫn thấy ribbon là bình thường. Ribbon có sử dụng được hay không là do code của bạn. Tóm lại bạn muốn xóa ribbon hay thế nào?
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom