Menu tự động ẩn (1 người xem)

  • Thread starter Thread starter bebeen
  • Ngày gửi Ngày gửi
Liên hệ QC

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

bebeen

Thành viên thường trực
Tham gia
13/2/12
Bài viết
213
Được thích
24
Em có tạo một menu cho Excel như sau:
Mã:
Private Sub Workbook_Open()    
     Call Menu01
End Sub

Mã:
Sub Menu01()
    Dim cb As CommandBar
    Dim cpop As CommandBarPopup
    Dim cpop2 As CommandBarPopup
    Dim cbtn As CommandBarButton
    Set cb = Application.CommandBars("Worksheet Menu Bar")
    Set cpop = cb.Controls.Add(msoControlPopup, , , , True)
    cpop.Caption = "B" & ChrW(7843) & "ng " & ChrW(273) & "i" & ChrW(7873) & "u khi" & ChrW(7875) & "n"
    '--------------------------------------------
    Set cpop2 = cpop.Controls.Add(msoControlPopup, , , , True)
    cpop2.Caption = "Qu" & ChrW(7843) & "n lý h" & ChrW(7879) & " th" & ChrW(7889) & "ng"
    cpop2.BeginGroup = True
    Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True)
    cbtn.Caption = "V" & ChrW(7873) & " c" & ChrW(7917) & "a s" & ChrW(7893) & " chính"
    cbtn.OnAction = "chinh"
    Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True)
    cbtn.Caption = "Sao l" & ChrW(432) & "u d" & ChrW(7919) & " li" & ChrW(7879) & "u"
    cbtn.OnAction = "thongtin"
    Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True)
    cbtn.Caption = ChrW(272) & ChrW(7893) & "i m" & ChrW(7853) & "t kh" & ChrW(7849) & "u"
    cbtn.OnAction = "ThayDoi"
    Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True)
    cbtn.Caption = "B" & ChrW(7843) & "o trì ch" & ChrW(432) & ChrW(417) & "ng trình"
    cbtn.OnAction = "LoiMo"
    Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True)
    cbtn.Caption = "Thoát ch" & ChrW(432) & ChrW(417) & "ng trình"
    cbtn.OnAction = "Ex_thoat"
    '----------------------------------------------------
    Set cpop2 = cpop.Controls.Add(msoControlPopup, , , , True)
    cpop2.Caption = "Khi báo thông tin"
    cpop2.BeginGroup = True
    Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True)
    cbtn.Caption = "Danh m" & ChrW(7909) & "c khách hàng"
    cbtn.OnAction = "cua01"
    Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True)
    cbtn.Caption = "Danh m" & ChrW(7909) & "c hàng hóa"
    cbtn.OnAction = "cua02"
    Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True)
    cbtn.Caption = "Thông tin " & ChrW(273) & ChrW(417) & "n v" & ChrW(7883)
    cbtn.OnAction = "cua03"
    '----------------------------------------------------
    Set cpop2 = cpop.Controls.Add(msoControlPopup, , , , True)
    cpop2.Caption = "Nh" & ChrW(7853) & "p d" & ChrW(7919) & " li" & ChrW(7879) & "u"
    cpop2.BeginGroup = True
    Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True)
    cbtn.Caption = "Phi" & ChrW(7871) & "u nh" & ChrW(7853) & "p kho"
    cbtn.OnAction = "cua04"
    Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True)
    cbtn.Caption = "Phi" & ChrW(7871) & "u xu" & ChrW(7845) & "t kho"
    cbtn.OnAction = "cua05"
    Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True)
    cbtn.Caption = "Gi" & ChrW(7845) & "y ra c" & ChrW(7893) & "ng"
    cbtn.OnAction = "thongtin"
    Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True)
    cbtn.Caption = "C" & ChrW(417) & " s" & ChrW(7903) & " d" & ChrW(7919) & " li" & ChrW(7879) & "u"
    cbtn.OnAction = "mocsdl"
    '----------------------------------------------------
    Set cpop2 = cpop.Controls.Add(msoControlPopup, , , , True)
    cpop2.Caption = "Báo cáo kho"
    cpop2.BeginGroup = True
    Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True)
    cbtn.Caption = "S" & ChrW(7893) & " th" & ChrW(7867) & " kho"
    cbtn.OnAction = "cua06"
    Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True)
    cbtn.Caption = "Nh" & ChrW(7853) & "p - xu" & ChrW(7845) & "t - t" & ChrW(7891) & "n"
    cbtn.OnAction = "cua07"
    Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True)
    cbtn.Caption = "T" & ChrW(7893) & "ng h" & ChrW(7907) & "p công n" & ChrW(7907)
    cbtn.OnAction = "cua08"
    Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True)
    cbtn.Caption = "Công n" & ChrW(7907) & " chi ti" & ChrW(7871) & "t"
    cbtn.OnAction = "cua09"
    '----------------------------------------------------
    Set cpop2 = cpop.Controls.Add(msoControlPopup, , , , True)
    cpop2.Caption = "Tr" & ChrW(7907) & " giúp"
    cpop2.BeginGroup = True
    Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True)
    cbtn.Caption = "Tác gi" & ChrW(7843)
    cbtn.OnAction = "TacGia"
    Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True)
    cbtn.Caption = "V" & ChrW(7873) & " ch" & ChrW(432) & ChrW(417) & "ng trình"
    cbtn.OnAction = "VeCT"
    Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True)
    cbtn.Caption = ChrW(272) & ChrW(259) & "ng ký s" & ChrW(7917) & " d" & ChrW(7909) & "ng"
    cbtn.OnAction = "thongtin"
    Set cbtn = cpop2.Controls.Add(msoControlButton, , , , True)
    cbtn.Caption = "H" & ChrW(432) & ChrW(7899) & "ng d" & ChrW(7851) & "n s" & ChrW(7917) & " d" & ChrW(7909) & "ng"
    cbtn.OnAction = "thongtin"
End Sub
Nhưng cứ chạy được tí thì tên menu em mới tạo ẩn đi và khi em cho chạy lại thì nó lại hiện ra 2 cái giống nhau luôn. Lý do là gì? Sao lại ẩn ah?
 
Lần chỉnh sửa cuối:
Hiện tượng này tôi nghĩ rằng bạn chạy trên Excel 2007.

Để giải quyết vấn đề hiện 2 cái giống nhau bạn làm như sau:

Dưới dòng này:

Set cb = Application.CommandBars("Worksheet Menu Bar")

Bạn thêm dòng này:

cb.Reset

Vậy là xong.
 
Upvote 0
Hiện tượng này tôi nghĩ rằng bạn chạy trên Excel 2007.

Để giải quyết vấn đề hiện 2 cái giống nhau bạn làm như sau:

Dưới dòng này:

Set cb = Application.CommandBars("Worksheet Menu Bar")

Bạn thêm dòng này:

cb.Reset

Vậy là xong.
Anh ơi, em đã xử lý ok rùi. Nhưng còn việc nó cứ tự động ẩn menu đi thì vẫn chưa được anh ah! Khi khởi động chương trình và view để xem rùi thoát ra thì nó lại ẩn menu đi luôn. Phải cho chạy lại thủ tục Menu01 mới lại được. Em cũng không biết nguyên nhân ở đâu nữa!?
 
Upvote 0
Anh ơi, em đã xử lý ok rùi. Nhưng còn việc nó cứ tự động ẩn menu đi thì vẫn chưa được anh ah! Khi khởi động chương trình và view để xem rùi thoát ra thì nó lại ẩn menu đi luôn. Phải cho chạy lại thủ tục Menu01 mới lại được. Em cũng không biết nguyên nhân ở đâu nữa!?
Bạn xài cùng lúc 2003 và 2007 phải vậy không? Nếu là vậy thì giống trường hợp của máy cơ quan tôi, tự nhiên biến mất Menu mà chẳng làm sao! Nó thường mất lúc ta Print Preview đó bạn!
 
Upvote 0
Đúng rùi ah! Em xài cả 2 bộ office. Vậy là em xoá bớt 1 cái là ok?
 
Upvote 0
Đúng rùi ah! Em xài cả 2 bộ office. Vậy là em xoá bớt 1 cái là ok?
Có thể là vậy, muốn xóa thì xóa cái 2003 bởi nó đã lỗi thời, vã lại, 2007 đọc được 2003 và Save As về dạng 2003, nhưng 2003 không thể làm ngược lại.
 
Lần chỉnh sửa cuối:
Upvote 0
Hôm qua em mới check và gỡ bỏ Office2003. Nhưng hiện tượng ẩn menu vẫn xảy ra. Không biết còn nguyên nhân nào khác nữa để xảy ra lỗi đó vậy?
 
Upvote 0
Hôm qua em mới check và gỡ bỏ Office2003. Nhưng hiện tượng ẩn menu vẫn xảy ra. Không biết còn nguyên nhân nào khác nữa để xảy ra lỗi đó vậy?

Tôi nghĩ bạn nên cài luôn 2010 cho rồi, xóa triệt để mọi thứ, dùng cleanclear xóa registry luôn và cài đặt lại.
 
Upvote 0
Việc xảy ra như vậy là đúng chứ không phải lỗi. Vì code tạo menu của bạn là
Controls.Add(,,,,True)
Tham số thứ 5 là Temporary nếu là True thì menu chỉ tạo tạm thời, nó sẽ tự giải phóng khỏi hệ thống khi ứng dụng đóng. Vậy muốn giữ lại thì bạn cần
Controls.Add(,,,,False)
 
Upvote 0
Việc xảy ra như vậy là đúng chứ không phải lỗi. Vì code tạo menu của bạn là
Controls.Add(,,,,True)
Tham số thứ 5 là Temporary nếu là True thì menu chỉ tạo tạm thời, nó sẽ tự giải phóng khỏi hệ thống khi ứng dụng đóng. Vậy muốn giữ lại thì bạn cần
Controls.Add(,,,,False)
Cám ơn Anh Nguyễn Duy Tuân về vấn đề này nhé, trước giờ cũng không để ý đến thông số này, nhưng tại sao Print Preview lại xảy ra hiện tượng mất Menu vậy? Phải chăng khi xem trước trang in, nó đã chuyển qua một Section khác rồi tự hủy Menu?
 
Upvote 0
Cám ơn Anh Nguyễn Duy Tuân về vấn đề này nhé, trước giờ cũng không để ý đến thông số này, nhưng tại sao Print Preview lại xảy ra hiện tượng mất Menu vậy? Phải chăng khi xem trước trang in, nó đã chuyển qua một Section khác rồi tự hủy Menu?

Vậy à. Mình chưa xem khi qua PrintPreview. Lúc nào ngồi máy mình tìm lý do xem thế nào.
 
Upvote 0

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

Back
Top Bottom