Add-Ins Tạo Menu RibbonTiếng Việt Có Dấu Cho Office

Liên hệ QC
1. Thống nhất với bác KieuManh.
2. Thật ra ở Sheet Main để hoàn thiện thì cần cải thiện lại chút (có thể sắp xếp thứ tự các cột lại). Theo tôi nên để cột ToolBox (Hiện tại là cột I) ở đầu, tiếp theo sau khi chọn ToolBox thì mới tính đến chuyện Level (hiện tại là cột B) hiện tại chỉ chọn 1, 2 hoặc 3 (theo tôi còn hơn nửa VD 4, 5, 6... Do Menu đa cấp hoặc dropdown) còn các cột còn lại sẽ nhiều hơn do mỗi đối tượng (Checkbox, Editbox, label, button,...) sẽ có những tham số riêng. Vì vậy mình sẽ viết sự kiện thay đổi giá trị của sheet Main sau khi chọn ToolBox thì những cột nào sẽ cho nhập (Dựa vào những giá trị của ToolBox, VD nếu là label thì cột imageMso không cần gõ, có thể đánh dấu bằng màu sắc).
3. Cột K, M, L mình chưa sử dụng, chỉ tạo cột N là các đối tượng để chọn cho cột I (Dùng Data Validation cho người dùng chọn cho dễ).
Trên là ý tưởng của riêng mình nhưng do sửa các cột thì sẽ sửa luôn code nên lười quá để vậy dùng luôn cho nhanh, nên về mặt ngăn nắp thì chưa đảm bảo.
Vậy thì từ từ Bạn nghiên cứu sắp xếp lại các cột cho ngăn nắp theo trình tự xong úp file mẫu lên ....

Mạnh nghiên cứu sẻ viết lại code sự kiên change cho phù hợp với Code ...xong ta tính tiếp ....nghiên cứu mà

Như câu nói của Hồ Chủ Tịch : Trường kỳ kháng chiến ắc thành công ..
 
Để bắt đầu làm việc ta thống nhất lại 1 vài cái xem tình hình sao ...xong tính tiếp

1/ để chèn code vào File khác bắt buột ta phải Trust access to the VBA project model ....nếu ko thì Tèo
Mình xài thì ko sao còn ai đó chưa biết thì tịt ....vì vậy Mình sẻ xài code sau xử lý nó trước khi chèn code vào file YourApp.xlsm

Mã:
Public Sub ChangeVBOM(ByVal Val As Long)
    Dim AppVer, Regkey As String
    AppVer = Application.Version
    Regkey = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & AppVer & "\Excel\Security\AccessVBOM"
    CreateObject("WScript.Shell").RegWrite Regkey, Val, "REG_DWORD"
End Sub


Public Sub CheckVBOM()
    ChangeVBOM (1)
End Sub


Public Sub UnCheckVBOM()
    ChangeVBOM (2)
End Sub

Code này nguy hiểm quá các bác ơi.
Chủ đề này ngày càng hấp dẫn nhỉ !
 
Mã:
Public Sub ChangeVBOM(ByVal Val As Long)
    Dim AppVer, Regkey As String
    AppVer = Application.Version
    Regkey = "HKEY_CURRENT_USER\Software\Microsoft\Office" & AppVer & "\Excel\Security\AccessVBOM"
    CreateObject("WScript.Shell").RegWrite Regkey, Val, "REG_DWORD"
End Sub


Public Sub CheckVBOM()
    ChangeVBOM (1)
End Sub


Public Sub UnCheckVBOM()
    ChangeVBOM (2)
End Sub

Code này nhiều khi nó không hoạt động. Nhìn vào mục 'Trust Access VBA' thì thấy nó đã check hoạt không check nhưng khi thao tác thì code nó vẫn không hiểu ( phải tắt khởi động lại excel ) thì nó mới hiểu. Các bạn có thể coi chủ đề này
Tuy nhiên có máy bị máy không. Cũng không biết nguyên nhân là tại sao +-+-+-++-+-+-++-+-+-+
 
Code này nguy hiểm quá các bác ơi.
Chủ đề này ngày càng hấp dẫn nhỉ !
Bài này nếu ta sử dụng thư viện của win thì có được ko Bạn ....Kiếm tài liệu coi nó Hông có...+-+-+-+%#^#$

1/ C:\Windows\System32\msxml3.dll

2/ C:\Windows\System32\msxml6.dll
 
Lần chỉnh sửa cuối:
Mã:
Public Sub ChangeVBOM(ByVal Val As Long)
    Dim AppVer, Regkey As String
    AppVer = Application.Version
    Regkey = "HKEY_CURRENT_USER\Software\Microsoft\Office" & AppVer & "\Excel\Security\AccessVBOM"
    CreateObject("WScript.Shell").RegWrite Regkey, Val, "REG_DWORD"
End Sub


Public Sub CheckVBOM()
    ChangeVBOM (1)
End Sub


Public Sub UnCheckVBOM()
    ChangeVBOM (2)
End Sub

Code này nhiều khi nó không hoạt động. Nhìn vào mục 'Trust Access VBA' thì thấy nó đã check hoạt không check nhưng khi thao tác thì code nó vẫn không hiểu ( phải tắt khởi động lại excel ) thì nó mới hiểu. Các bạn có thể coi chủ đề này

Tuy nhiên có máy bị máy không. Cũng không biết nguyên nhân là tại sao +-+-+-++-+-+-++-+-+-+
trang đó mình biết lâu rồi ...có cách xử hết đó ...có điều chưa cần thiết đó thôi ...
 
Lần chỉnh sửa cuối:
Bài này nếu ta sử dụng thư viện của win thì có được ko Bạn ....Kiếm tài liệu coi nó Hông có...+-+-+-+%#^#$

1/ C:\Windows\System32\msxml3.dll

2/ C:\Windows\System32\msxml6.dll

Mình có hiểu gì về thư việc đó đâu, tài liệu về custom Ribbon, các bạn có thể vào MSDN đề kiếm, ví dụ như :
https://msdn.microsoft.com/en-us/library/bb386097.aspx
https://www.microsoft.com/en-us/download/details.aspx?id=36798
https://www.microsoft.com/en-us/download/details.aspx?id=6627

Diễn đàn mình chắc có bác Phan Tự Hướng là chuyên gia món này đó.
 
Mình có hiểu gì về thư việc đó đâu, tài liệu về custom Ribbon, các bạn có thể vào MSDN đề kiếm, ví dụ như :
https://msdn.microsoft.com/en-us/library/bb386097.aspx
https://www.microsoft.com/en-us/download/details.aspx?id=36798
https://www.microsoft.com/en-us/download/details.aspx?id=6627

Diễn đàn mình chắc có bác Phan Tự Hướng là chuyên gia món này đó.

Tại mình có coi 1 File của trang nước ngoài nó tao Ribbon sử dụng thư viện đó tao cho Một File Excel bất kỳ không cần Files YourApp.xlsm mà mình Set sẳn UI trong đó nên mới hỏi vây...xem nó có liên quan gì không đó mà....

Còn mấy link đó Mình coi tối qua rồi
 
Lần chỉnh sửa cuối:
Tại mình có coi 1 File của trang nước ngoài nó tao Ribbon sử dụng thư viện đó tao cho Một File Excel bất kỳ không cần Files YourApp.xlsm mà mình Set sẳn UI trong đó nên mới hỏi vây...xem nó có liên quan gì không đó mà....

Còn mấy link đó Mình coi tối qua rồi

Các bạn cũng có thể tham khảo phần mềm này (có hạn chế tính năng):
http://www.ribboncreator2016.de/

Tuy nhiên, chỉ bằng thủ thuật nhỏ, chúng ta hoàn toàn có thể lách luật để sử dụng đầy đủ tính năng (tất nhiên là không mất phí). Vì diễn đàn không khuyến khích, mình không trình bày ở đây, bạn nào quan tâm có thể gửi tin nhắn riêng.
 
Các bạn cũng có thể tham khảo phần mềm này (có hạn chế tính năng):
http://www.ribboncreator2016.de/

Tuy nhiên, chỉ bằng thủ thuật nhỏ, chúng ta hoàn toàn có thể lách luật để sử dụng đầy đủ tính năng (tất nhiên là không mất phí). Vì diễn đàn không khuyến khích, mình không trình bày ở đây, bạn nào quan tâm có thể gửi tin nhắn riêng.
Tối qua mới cài mấy cái coi rồi ....Chủ yếu cài để dòm code của nó xem nó làm chi đó thôi mà ...
vài hôm coi hết xóa liền --=0

thêm cái này nữa nè nó nhiều cái hay đó
http://www.spreadsheet1.com/dynamic-icon-browser.html
 
Tối qua mới cài mấy cái coi rồi ....Chủ yếu cài để dòm code của nó xem nó làm chi đó thôi mà ...
vài hôm coi hết xóa liền --=0

thêm cái này nữa nè nó nhiều cái hay đó
http://www.spreadsheet1.com/dynamic-icon-browser.html

Nói chung cũng loằng ngoằng lắm, ví dụ :
1. Để có thể sử dụng Ribbon, bạn phải khai báo (đăng ký) vào file .rels trong thư mục _rels (Các bạn đổi đuôi .xlsm sang .zip để xem nhé) dòng sau :
<Relationship Id="R7f19f805bfb641b9" Type="http://schemas.microsoft.com/office/2007/relationships/ui/extensibility" Target=" ...

(Lưu ý : Có thể khác đối với Office 2007)

2. Khi sử dụng hình tùy chọn, bạn copy hình đó vào thư mục nào đó rồi khai báo (đăng ký) hình đó (Xem thư mục customUI)

>> Cách nhanh là cứ sử dụng file YourApp.xlsm
 
Nói chung cũng loằng ngoằng lắm, ví dụ :
1. Để có thể sử dụng Ribbon, bạn phải khai báo (đăng ký) vào file .rels trong thư mục _rels (Các bạn đổi đuôi .xlsm sang .zip để xem nhé) dòng sau :
<Relationship Id="R7f19f805bfb641b9" Type="http://schemas.microsoft.com/office/2007/relationships/ui/extensibility" Target=" ...

(Lưu ý : Có thể khác đối với Office 2007)

2. Khi sử dụng hình tùy chọn, bạn copy hình đó vào thư mục nào đó rồi khai báo (đăng ký) hình đó (Xem thư mục customUI)

>> Cách nhanh là cứ sử dụng file YourApp.xlsm
Mình coi hết Rồi nói chung loằng ngoằng mỳ tôn đó mà....

Còn cách này cũng Vui nè ...Nhưng vô tích sự
Mã:
Private Sub Workbook_Activate()


Dim hFile As Long
Dim path As String, fileName As String, ribbonXML As String, user As String


hFile = FreeFile
user = Environ("Username")
path = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\"
fileName = "Excel.officeUI"


ribbonXML = "<mso:customUI      xmlns:mso='http://schemas.microsoft.com/office/2009/07/customui'>" & vbNewLine
ribbonXML = ribbonXML + "  <mso:ribbon>" & vbNewLine
ribbonXML = ribbonXML + "    <mso:qat/>" & vbNewLine
ribbonXML = ribbonXML + "    <mso:tabs>" & vbNewLine
ribbonXML = ribbonXML + "      <mso:tab id='reportTab' label='My Actions' insertBeforeQ='mso:TabFormat'>" & vbNewLine
ribbonXML = ribbonXML + "        <mso:group id='reportGroup' label='Reports' autoScale='true'>" & vbNewLine
ribbonXML = ribbonXML + "          <mso:button id='runReport' label='Trim' " & vbNewLine
ribbonXML = ribbonXML + "imageMso='AppointmentColor3'      onAction='TrimSelection'/>" & vbNewLine
ribbonXML = ribbonXML + "        </mso:group>" & vbNewLine
ribbonXML = ribbonXML + "      </mso:tab>" & vbNewLine
ribbonXML = ribbonXML + "    </mso:tabs>" & vbNewLine
ribbonXML = ribbonXML + "  </mso:ribbon>" & vbNewLine
ribbonXML = ribbonXML + "</mso:customUI>"


ribbonXML = Replace(ribbonXML, """", "")


Open path & fileName For Output Access Write As hFile
Print #hFile, ribbonXML
Close hFile


End Sub


Private Sub Workbook_Deactivate()


Dim hFile As Long
Dim path As String, fileName As String, ribbonXML As String, user As String


hFile = FreeFile
user = Environ("Username")
path = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\"
fileName = "Excel.officeUI"


ribbonXML = "<mso:customUI           xmlns:mso=""http://schemas.microsoft.com/office/2009/07/customui"">" & _
"<mso:ribbon></mso:ribbon></mso:customUI>"


Open path & fileName For Output Access Write As hFile
Print #hFile, ribbonXML
Close hFile


End Sub
 
Lần chỉnh sửa cuối:
Các bạn cũng có thể tham khảo phần mềm này (có hạn chế tính năng):
http://www.ribboncreator2016.de/

Tuy nhiên, chỉ bằng thủ thuật nhỏ, chúng ta hoàn toàn có thể lách luật để sử dụng đầy đủ tính năng (tất nhiên là không mất phí). Vì diễn đàn không khuyến khích, mình không trình bày ở đây, bạn nào quan tâm có thể gửi tin nhắn riêng.
Cái này hay quá, thấy nó rồi thì nghiên cứu chi cho mệt, có sử dụng cho khỏe (Mình là dạng cực lười).
 
Cái này hay quá, thấy nó rồi thì nghiên cứu chi cho mệt, có sử dụng cho khỏe (Mình là dạng cực lười).
Thực ra bài này có nhiều cách làm khác nhau ...

Mạnh mới khai thác cách làm khác còn xúc tích ngắn gọn hơn nữa ...

Bỏ luôn mấy hàm Unzip, CreateNewZipZipFilesInSub ... vẫn làm được ...

Tuy nhiên cấu trúc XML Mạnh mới vọc tới 10 ngày này nên chưa thật sự hiểu về nó lắm ....

Chứ hiểu rồi thì cũng không phải là vấn đề khó lắm

Chờ Bạn có cao kiến gì chăng ...hay ta chốt tại đây vậy ....+-+-+-+--=0|||||
 
Thực ra bài này có nhiều cách làm khác nhau ...

Mạnh mới khai thác cách làm khác còn xúc tích ngắn gọn hơn nữa ...

Bỏ luôn mấy hàm Unzip, CreateNewZipZipFilesInSub ... vẫn làm được ...

Tuy nhiên cấu trúc XML Mạnh mới vọc tới 10 ngày này nên chưa thật sự hiểu về nó lắm ....

Chứ hiểu rồi thì cũng không phải là vấn đề khó lắm

Chờ Bạn có cao kiến gì chăng ...hay ta chốt tại đây vậy ....+-+-+-+--=0|||||
Bác KieuManh có hứng thú thì cứ tiếp tục, còn cao kiến của mình thì chỉ có vậy, chứ muốn nghiên cứu thêm nửa thì lười quá. Tôi thấy phần mềm IDBE RibbonCreator 2016 này rồi ý tưởng của mình chóng mặt quá (Do có quá nhiều tính năng cho một đối tượng), lúc đầu thì chỉ nghĩ các lệnh thường dùng thôi, nhưng trên thực tế cái mình nghĩ chưa chắc người khác nghĩ, cái mình dùng thường chưa chắc người khác dùng thường. Chính vì vậy tôi thấy khả năng mình có giới hạn không đủ trình độ để thực hiện tiếp ý tưởng này, nhưng KieuManh có khả năng thì hoan hô ủng hộ.
 
Trong khi đợi bác KieuManh ra tay thì cho tiểu đệ vọc chút vậy. Thêm vào checkBox, labelControl, editBox, button, separator, đây chỉ là ý tưởng thôi, muốn sử dụng tốt phải sửa chửa nhiều hơn.
To thaipv

Mình coi lại bài này của giaiphap xem cố giắng viết code hoàn thiện cột K, M, L ...và sắp xếp lại cho gọn, tiện sử dụng ....nhưng cấu trúc chuỗi customUI.xml để viết thành code cho nó chạy với mình khó quá ....viết nó cứ lỗi với sai ko thôi ...Nếu làm thủ công thì tạm OK

Vì vậy nếu được nhờ Bạn viết cho code cột k,m,l hay sắp xếp lại cho tiện dùng mình với

Nếu được Mình sẻ

1/ Viết lại code sự kiên change cho phù hợp với code

2/ Viết thêm code cho nó tạo một file Excel bất kỳ là office 2007 hay office 2010 mà không phải sử dụng file mẫu
YourApp.xlsm ...sử dụng Application.GetOpenFilename("All Files, *.xlsm; *.xlsb" để chọn file

3/ Mạnh thấy code Bạn thaipv viết cho Menu tiếng việt tiện sử dụng và hay hơn rất nhiều các chương trình khác có trên mạng cho nên Mình đang cố giắng nghiên cứu hoàn thiện nó Mong rất Bạn hổ trợ thêm

Xin cảm ơn

 
To thaipv

Mình coi lại bài này của giaiphap xem cố giắng viết code hoàn thiện cột K, M, L ...và sắp xếp lại cho gọn, tiện sử dụng ....nhưng cấu trúc chuỗi customUI.xml để viết thành code cho nó chạy với mình khó quá ....viết nó cứ lỗi với sai ko thôi ...Nếu làm thủ công thì tạm OK

Vì vậy nếu được nhờ Bạn viết cho code cột k,m,l hay sắp xếp lại cho tiện dùng mình với

Nếu được Mình sẻ

1/ Viết lại code sự kiên change cho phù hợp với code

2/ Viết thêm code cho nó tạo một file Excel bất kỳ là office 2007 hay office 2010 mà không phải sử dụng file mẫu
YourApp.xlsm ...sử dụng Application.GetOpenFilename("All Files, *.xlsm; *.xlsb" để chọn file

3/ Mạnh thấy code Bạn thaipv viết cho Menu tiếng việt tiện sử dụng và hay hơn rất nhiều các chương trình khác có trên mạng cho nên Mình đang cố giắng nghiên cứu hoàn thiện nó Mong rất Bạn hổ trợ thêm

Xin cảm ơn


Chủ đề này hay mà, các bạn tiếp tục đi chứ, thêm ngôn ngữ tiếng Anh nữa, đánh bật thằng IDBE Ribbon Creator luôn đi.

(Hiện mình bận quá nên không tham gia được, chỉ có thể vỗ tay ủng hộ các bạn tiếp tục phát triển thôi)
 
Chủ đề này hay mà, các bạn tiếp tục đi chứ, thêm ngôn ngữ tiếng Anh nữa, đánh bật thằng IDBE Ribbon Creator luôn đi.

(Hiện mình bận quá nên không tham gia được, chỉ có thể vỗ tay ủng hộ các bạn tiếp tục phát triển thôi)
Còn đang kẹt sự đa dạng đó checkBox, labelControl, editBox, button, separator ....+-+-+-+

Còn lại Mạnh sẻ xử hết ....Nó sẻ thành 1 Add-ins Hoàn chỉnh Tạo Menu Tiếng việt 1 File Excel bất kỳ (Office 2007,2010 và 2016)....Xong
 
Còn đang kẹt sự đa dạng đó checkBox, labelControl, editBox, button, separator ....+-+-+-+

Còn lại Mạnh sẻ xử hết ....Nó sẻ thành 1 Add-ins Hoàn chỉnh Tạo Menu Tiếng việt 1 File Excel bất kỳ (Office 2007,2010 và 2016)....Xong
XML không có gì khó đâu, do đại ca nhìn nó rối mắt nên thấy nó rối như mì tôm thôi, anh thử nghiên cứu làm menu giống dạng này xem sao
Picture1.jpg
nó phân chia thành nhiều cấp bậc, trong nhiều group
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom