Thử code này xem:em dùng Add-ins của thầy Nguyen Thanh Hai, thấy mỗi khi mình rê chuột lên thì nó hiện lên như vậy, cho em hỏi là trong VBA mình sử dụng codde963d9e63 được như vậy ạ . Em cám ơn !!!
Sub BuildCommandBar()
On Error Resume Next
Application.CommandBars(1).Controls("Tien ich").Delete
With Application.CommandBars(1).Controls.Add(1, , , , 1)
.Style = msoButtonCaption
.Caption = "Tien ich"
.TooltipText = "Lap trinh: Nguyen Thanh Hai"
End With
End Sub
Sub BuildCommandBar()
On Error Resume Next
Application.CommandBars(1).Controls("Tien ich").Delete
With Application.CommandBars(1).Controls.Add(1, , , , 1)
.Style = msoButtonCaption
.Caption = "Tien ich"
.TooltipText = "Lap trinh: Nguyen Thanh Hai"
End With
End Sub
Sub Auto_Open()
Dim MyMenu As Long
Auto_Close
MyMenu = Application.MenuBars(xlWorksheet).Menus.Count + 1
MenuBars(xlWorksheet).Menus.Add "Ch" & ChrW(432) & ChrW(417) & "ng " & "tr" & ChrW(236) & "nh " & "h" & ChrW(7895) & " tr" & ChrW(7907) & " CBSX ATO "
MenuBars(xlWorksheet).Menus(MyMenu).MenuItems.Add "T" & ChrW(7841) & "o " & "m" & ChrW(227) & " V" & ChrW(7841) & "ch Barcode", "fileOpen1"
'MenuBars(xlWorksheet).Menus(MyMenu).MenuItems.Add "nhaäp döõ lieäu goác", "fileOpen2"
'MenuBars(xlWorksheet).Menus(MyMenu).MenuItems.Add "lam nhan dan' hop", "fileOpen3"
MenuBars(xlWorksheet).Menus(MyMenu).MenuItems.Add "thông tin", "fileOpen4"
End Sub
Sub Auto_Close()
Application.CommandBars("Worksheet menu bar").Reset
End Sub
Sub fileOpen1()
Shell "D:\3 code\barcode.exe", vbNormalFocus
End Sub
Cái của người ta chỉ là 1 cái nút nhấn, không phải là Menu đâu (bạn bấm nút chắc đâu thấy menu con bên trong, đúng không?).Dạ thưa thầy cho em hỏi thêm là em muốn chèn đoạn code này vào menu của em như hình trên thì chèn vào đoạn nào ạ
Mã:Sub BuildCommandBar() On Error Resume Next Application.CommandBars(1).Controls("Tien ich").Delete With Application.CommandBars(1).Controls.Add(1, , , , 1) .Style = msoButtonCaption .Caption = "Tien ich" .TooltipText = "Lap trinh: Nguyen Thanh Hai" End With End Sub
Đoạn code Menu của em :
Mã:Sub Auto_Open() Dim MyMenu As Long Auto_Close MyMenu = Application.MenuBars(xlWorksheet).Menus.Count + 1 MenuBars(xlWorksheet).Menus.Add "Ch" & ChrW(432) & ChrW(417) & "ng " & "tr" & ChrW(236) & "nh " & "h" & ChrW(7895) & " tr" & ChrW(7907) & " CBSX ATO " MenuBars(xlWorksheet).Menus(MyMenu).MenuItems.Add "T" & ChrW(7841) & "o " & "m" & ChrW(227) & " V" & ChrW(7841) & "ch Barcode", "fileOpen1" 'MenuBars(xlWorksheet).Menus(MyMenu).MenuItems.Add "nhaäp döõ lieäu goác", "fileOpen2" 'MenuBars(xlWorksheet).Menus(MyMenu).MenuItems.Add "lam nhan dan' hop", "fileOpen3" MenuBars(xlWorksheet).Menus(MyMenu).MenuItems.Add "thông tin", "fileOpen4" End Sub Sub Auto_Close() Application.CommandBars("Worksheet menu bar").Reset End Sub Sub fileOpen1() Shell "D:\3 code\barcode.exe", vbNormalFocus End Sub
Cũng ráng làm 1 cái tương tự cho bạn:Dạ tại em thấy trong cái Add-in của thầy Nguyen Thanh Hai cái CommandBar đó nó nằm trên menu luôn ạ, mỗi lần mình rê chuột lên thì nó hiện lên giống hình trên đó thầy. File đó nè thầy
http://www.giaiphapexcel.com/forum/attachment.php?attachmentid=42155&d=1266908479
Sub Auto_Open()
Dim cBarName As String, sBar1 As String, sBar2 As String, sBar3 As String
cBarName = UniConvert("Chu7o7ng tri2nh ho64 tro75", "VNI") & " CBSX ATO "
sBar1 = UniConvert("Ta5o ma4 va5ch", "VNI") & " Barcode"
sBar2 = UniConvert("Nha65p du74 lie65u go61c", "VNI")
sBar3 = UniConvert("La2m nha4n da1n ho65p", "VNI")
Auto_Close
On Error Resume Next
With Application.CommandBars(1).Controls.Add(10)
.Caption = cBarName
.TooltipText = UniConvert("La65p tri2nh: Nguye64n Anh Tua61n", "VNI")
With .Controls.Add(1)
.Caption = sBar1: .OnAction = "fileOpen1"
End With
With .Controls.Add(1)
.Caption = sBar2: .OnAction = "fileOpen2"
End With
With .Controls.Add(1)
.Caption = sBar3: .OnAction = "fileOpen3"
End With
End With
End Sub
Function UniConvert(Text As String, InputMethod As String) As String
Dim VNI_Type, Telex_Type, CharCode, Temp, i As Long
UniConvert = Text
VNI_Type = Array("a81", "a82", "a83", "a84", "a85", "a61", "a62", "a63", "a64", "a65", "e61", _
"e62", "e63", "e64", "e65", "o61", "o62", "o63", "o64", "o65", "o71", "o72", "o73", "o74", _
"o75", "u71", "u72", "u73", "u74", "u75", "a1", "a2", "a3", "a4", "a5", "a8", "a6", "d9", _
"e1", "e2", "e3", "e4", "e5", "e6", "i1", "i2", "i3", "i4", "i5", "o1", "o2", "o3", "o4", _
"o5", "o6", "o7", "u1", "u2", "u3", "u4", "u5", "u7", "y1", "y2", "y3", "y4", "y5")
Telex_Type = Array("aws", "awf", "awr", "awx", "awj", "aas", "aaf", "aar", "aax", "aaj", "ees", _
"eef", "eer", "eex", "eej", "oos", "oof", "oor", "oox", "ooj", "ows", "owf", "owr", "owx", _
"owj", "uws", "uwf", "uwr", "uwx", "uwj", "as", "af", "ar", "ax", "aj", "aw", "aa", "dd", _
"es", "ef", "er", "ex", "ej", "ee", "is", "if", "ir", "ix", "ij", "os", "of", "or", "ox", _
"oj", "oo", "ow", "us", "uf", "ur", "ux", "uj", "uw", "ys", "yf", "yr", "yx", "yj")
CharCode = Array(ChrW(7855), ChrW(7857), ChrW(7859), ChrW(7861), ChrW(7863), ChrW(7845), ChrW(7847), _
ChrW(7849), ChrW(7851), ChrW(7853), ChrW(7871), ChrW(7873), ChrW(7875), ChrW(7877), ChrW(7879), _
ChrW(7889), ChrW(7891), ChrW(7893), ChrW(7895), ChrW(7897), ChrW(7899), ChrW(7901), ChrW(7903), _
ChrW(7905), ChrW(7907), ChrW(7913), ChrW(7915), ChrW(7917), ChrW(7919), ChrW(7921), ChrW(225), _
ChrW(224), ChrW(7843), ChrW(227), ChrW(7841), ChrW(259), ChrW(226), ChrW(273), ChrW(233), ChrW(232), _
ChrW(7867), ChrW(7869), ChrW(7865), ChrW(234), ChrW(237), ChrW(236), ChrW(7881), ChrW(297), ChrW(7883), _
ChrW(243), ChrW(242), ChrW(7887), ChrW(245), ChrW(7885), ChrW(244), ChrW(417), ChrW(250), ChrW(249), _
ChrW(7911), ChrW(361), ChrW(7909), ChrW(432), ChrW(253), ChrW(7923), ChrW(7927), ChrW(7929), ChrW(7925))
Select Case InputMethod
Case Is = "VNI": Temp = VNI_Type
Case Is = "Telex": Temp = Telex_Type
End Select
For i = 0 To UBound(CharCode)
UniConvert = Replace(UniConvert, Temp(i), CharCode(i))
UniConvert = Replace(UniConvert, UCase(Temp(i)), UCase(CharCode(i)))
Next i
End Function
Thật ra chèn Icon chẳng phải khó khăn gì, chỉ là tốn công chọn Icon phù hợp thôinếu muốn có thêm icon thì mình phải viết thêm 1 đoạn code để chèn hình ảnh vô nữa hả thầy, em không phải dân lập trình, chỉ tự tìm tòi nên có nhiều cái hỏi chưa đúng ý ! có gì mong thầy bỏ qua cho ^.^ ( thầy có tài liệu nào về lập trình trong Excel thì chỉ cho em với! em cám ơn thầy nhiều )
Sub Auto_Open()
Dim MyMenu As Long, cBarName As String, sBar1 As String, sBar2 As String, sBar3 As String
cBarName = UniConvert("Chu7o7ng tri2nh ho64 tro75", "VNI") & " CBSX ATO "
sBar1 = UniConvert("Ta5o ma4 va5ch", "VNI") & " Barcode"
sBar2 = UniConvert("Nha65p du74 lie65u go61c", "VNI")
sBar3 = UniConvert("La2m nha4n da1n ho65p", "VNI")
Auto_Close
On Error Resume Next
With Application.CommandBars(1).Controls.Add(10)
.Caption = cBarName
.TooltipText = UniConvert("La65p tri2nh: Nguye64n Anh Tua61n", "VNI")
With .Controls.Add(1)
.Caption = sBar1: .OnAction = "fileOpen1": .FaceId = [COLOR=#ff0000][B]438[/B][/COLOR]
End With
With .Controls.Add(1)
.Caption = sBar2: .OnAction = "fileOpen2": .FaceId = [B][COLOR=#ff0000]69[/COLOR][/B]
End With
With .Controls.Add(1)
.Caption = sBar3: .OnAction = "fileOpen3": .FaceId = [B][COLOR=#ff0000]53[/COLOR][/B]
End With
End With
End Sub
Bạn nói tôi chưa hiểu! Add-in khác ở đây là những gì? "Đè" nghĩa là thế nào nhỉ?Dạ thầy ơi, sao em add-ins của mình thì nó lại đè lân mấy cái add-ins khác, có cách nào để khi mở Add-ins thầy hướng dẫn em mà không bị mất các add khác không vậy thầy ! thank