cho em hỏi về code ẩn và hiện menu bar (1 người xem)

Liên hệ QC

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

ducdinh1987

Thành viên thường trực
Tham gia
10/6/10
Bài viết
266
Được thích
75
Nghề nghiệp
Kỹ sư công nghệ sinh học
anh chị cho em hỏi tí, em viết đoạn code khi mở sẽ ẩn thanh menu bars và đi đóng file excel đó sẽ hiện lại thanh như cũ khi mở 1 file excel khác, mà sao lệnh hiện không được vậy?
nhờ các anh chị xem giùm em:
Private Sub auto_open()
Dim Cbar As CommandBar
For Each Cbar In Application.CommandBars
Cbar.Enabled = False
Next
End Sub
Private Sub Workbook_BeforeClose()
Dim Cbar As CommandBar
For Each Cbar In Application.CommandBars
Cbar.Enabled = True
Next
End Sub
 
anh chị cho em hỏi tí, em viết đoạn code khi mở sẽ ẩn thanh menu bars và đi đóng file excel đó sẽ hiện lại thanh như cũ khi mở 1 file excel khác, mà sao lệnh hiện không được vậy?
nhờ các anh chị xem giùm em:
Private Sub auto_open()
Dim Cbar As CommandBar
For Each Cbar In Application.CommandBars
Cbar.Enabled = False
Next
End Sub
Private Sub Workbook_BeforeClose()
Dim Cbar As CommandBar
For Each Cbar In Application.CommandBars
Cbar.Enabled = True
Next
End Sub
Tặng bạn nè:
PHP:
Sub Auto_Open()
  Application.DisplayFullScreen = True
  CommandBars("Worksheet Menu Bar").Position = msoBarBottom
  CommandBars("Full Screen").Visible = False
  ActiveWindow.DisplayGridlines = False
  ActiveWindow.DisplayHeadings = False
  ActiveWindow.DisplayWorkbookTabs = False
  ActiveWindow.DisplayHorizontalScrollBar = False
  ActiveWindow.DisplayVerticalScrollBar = False
End Sub
PHP:
Sub Auto_Close()
  CommandBars("Full Screen").Visible = True
  Application.DisplayFullScreen = False
  CommandBars("Worksheet Menu Bar").Position = msoBarTop
  ActiveWindow.DisplayHeadings = True
  ActiveWindow.DisplayGridlines = True
  ActiveWindow.DisplayWorkbookTabs = True
  ActiveWindow.DisplayHorizontalScrollBar = True
  ActiveWindow.DisplayVerticalScrollBar = True
  ThisWorkbook.Close (True)
End Sub
Mở file ra sẽ thấy nó ẩn tất tần tật (dùng cách Full màn hình, khỏe re)
 

File đính kèm

Upvote 0
em cảm ơn bác ndu96081631
em thấy còn thanh menu hiện lên nên em có thêm vào 1 dòng cho nó mất thanh luôn cho các anh em muốn tham khảo thêm.
code:
Sub Auto_Open()
Application.DisplayFullScreen = True
Application.CommandBars("Worksheet Menu Bar").Enabled = False
CommandBars("Worksheet Menu Bar").Position = msoBarBottom
CommandBars("Full Screen").Visible = False
ActiveWindow.DisplayGridlines = False
ActiveWindow.DisplayHeadings = False
ActiveWindow.DisplayWorkbookTabs = False
ActiveWindow.DisplayHorizontalScrollBar = False
ActiveWindow.DisplayVerticalScrollBar = False
End Sub
Sub Auto_Close()
CommandBars("Full Screen").Visible = True
Application.CommandBars("Worksheet Menu Bar").Enabled = True
Application.DisplayFullScreen = False
CommandBars("Worksheet Menu Bar").Position = msoBarTop
ActiveWindow.DisplayHeadings = True
ActiveWindow.DisplayGridlines = True
ActiveWindow.DisplayWorkbookTabs = True
ActiveWindow.DisplayHorizontalScrollBar = True
ActiveWindow.DisplayVerticalScrollBar = True
ThisWorkbook.Close (True)
End Sub
 
Upvote 0
em cảm ơn bác ndu96081631
em thấy còn thanh menu hiện lên nên em có thêm vào 1 dòng cho nó mất thanh luôn cho các anh em muốn tham khảo thêm.
Nếu đã thêm dòng:
Application.CommandBars("Worksheet Menu Bar").Enabled = False
Thì bỏ luôn dòng này:
CommandBars("Worksheet Menu Bar").Position = msoBarBottom
THỪA
 
Upvote 0
các anh chị ơi giúp em với. em chạy trên office 2007 thì nó không chạy được.
 
Upvote 0
Với XL2007-2010 thì không sử dụng được code này đâu nhé! hình như phải dùng ngôn ngữ Java gì đó thì phải.
Dùng được! Thậm chí còn ngắn hơn:
PHP:
Sub Auto_Open()
  Application.DisplayFullScreen = True
End Sub
PHP:
Sub Auto_Close()
  Application.DisplayFullScreen = False
End Sub
 
Upvote 0
Dùng được! Thậm chí còn ngắn hơn:
PHP:
Sub Auto_Open()
  Application.DisplayFullScreen = True
End Sub
PHP:
Sub Auto_Close()
  Application.DisplayFullScreen = False
End Sub

Cái này cần gì mắc với rô thầy ơi, công cụ FullScreen đã có sẳn rồi còn gì. Vậy thà là check vào Minimize the Ribbon là chắc ăn nhất!!!
 
Upvote 0
Cái này cần gì mắc với rô thầy ơi, công cụ FullScreen đã có sẳn rồi còn gì. Vậy thà là check vào Minimize the Ribbon là chắc ăn nhất!!!
Điều đó đương nhiên. Nhưng nếu mình viết 1 chương trình thì đương nhiên mình muốn mọi thứ tự động luôn chứ. Chả lẽ khởi động chương trình lên, xong rồi phải làm thêm động tác check chiếc gì gì đó sao?
 
Upvote 0
Điều đó đương nhiên. Nhưng nếu mình viết 1 chương trình thì đương nhiên mình muốn mọi thứ tự động luôn chứ. Chả lẽ khởi động chương trình lên, xong rồi phải làm thêm động tác check chiếc gì gì đó sao?

Cái vụ check vào Minimize the Ribbon thì chỉ check 1 lần thôi nha Thầy, lần mở sau nó vẫn giữ trạng thái đó cho đến khi người dùng không muốn check vào nó nữa.
 
Upvote 0
Cái vụ check vào Minimize the Ribbon thì chỉ check 1 lần thôi nha Thầy, lần mở sau nó vẫn giữ trạng thái đó cho đến khi người dùng không muốn check vào nó nữa.
Đây là thứ mà người dùng họ ghét nhất. Khi mình viết 1 chương trình, mình muốn thay đổi giao diện thế nào tùy ý nhưng khi thoát file, vui lòng trả mọi thứ về như cũ.
Thế thì mới có cái vụ tìm cách viết vào code chứ (dù tôi vẫn làm bằng tay được)
Nói chung là:
- Khi viết 1 chương trình, tôi muốn giao diện phải thể hiện theo ý tôi và người dùng không phải làm thêm bất cứ động tác nào cả
- Khi tắt chương trình, để làm hài lòng người dùng, tôi phải trả mọi thứ về nguyên gốc
(nếu không làm như vậy thì chương trình ta viết có thể bị quăng sọt rác ngay ở lần đầu tiên sử dụng)
 
Upvote 0
anh ndu96081631 ơi, em check lại mà sao nó không được vậy? em đang viết 1 chương trình cần nó ẩn tất cả, trên excel 2003 thì được còn 2007 - 2010 thì lại không được
 
Upvote 0
anh ndu96081631 ơi, em check lại mà sao nó không được vậy? em đang viết 1 chương trình cần nó ẩn tất cả, trên excel 2003 thì được còn 2007 - 2010 thì lại không được
Thế bạn xem bài số 7 chưa?
Nếu làm không được thì đưa file lên đây tôi xem thử
 
Upvote 0
anh ndu96081631 ơi, em check lại mà sao nó không được vậy? em đang viết 1 chương trình cần nó ẩn tất cả, trên excel 2003 thì được còn 2007 - 2010 thì lại không được

Bạn thử chép 2 cái này vào ThisWorkbook xem sao:

PHP:
Private Sub Workbook_Activate()
  Application.DisplayFullScreen = True
End Sub
Private Sub Workbook_Deactivate()
  Application.DisplayFullScreen = False
End Sub
 
Upvote 0
em lưu dưới dạng đuôi *.XLS, nhưng mở bằng excel 2007 không được, không phải em lưu đuôi *.XLSX.
 
Upvote 0
em lưu dưới dạng đuôi *.XLS, nhưng mở bằng excel 2007 không được, không phải em lưu đuôi *.XLSX.

Đối với File có chứa Macro, với XL2003 thì lưu dễ dàng (Save as type: Excel 97-2003 Workbook) là không phải bị "hỏi thăm" với XL2007-2010 phải lưu dưới dạng khác (Save as type: Excel Macro-Enabled Workbook), nếu không lưu ở dạng này thì mọi Macro sẽ bị mất hết!
 
Upvote 0
Bạn thử chép 2 cái này vào ThisWorkbook xem sao:

PHP:
Private Sub Workbook_Activate()
  Application.DisplayFullScreen = True
End Sub
Private Sub Workbook_Deactivate()
  Application.DisplayFullScreen = False
End Sub
Hay lắm bạn, nhưng chỉ cần nhấn chuột phải chọn nút restore hoặc biếu tượng restore góc phải window la trở lại bình thường, có cách nào không cho thực hiện những điều đó luôn không bạn.
 
Upvote 0
Hay lắm bạn, nhưng chỉ cần nhấn chuột phải chọn nút restore hoặc biếu tượng restore góc phải window la trở lại bình thường, có cách nào không cho thực hiện những điều đó luôn không bạn.

Bạn thử dùng cái này xem:

PHP:
Private Sub Workbook_Activate()
  With Application
    .DisplayFullScreen = True
    .CommandBars(1).Controls("View").Controls("Full Screen").Enabled = False
    .CommandBars("Full Screen").Enabled = False
  End With
End Sub

Và:

PHP:
Private Sub Workbook_Deactivate()
  With Application
    .DisplayFullScreen = False
    .CommandBars(1).Controls("View").Controls("Full Screen").Enabled = True
    .CommandBars("Full Screen").Enabled = True
  End With
End Sub
 
Upvote 0
Hay lắm bạn, nhưng chỉ cần nhấn chuột phải chọn nút restore hoặc biếu tượng restore góc phải window la trở lại bình thường, có cách nào không cho thực hiện những điều đó luôn không bạn.

Với vấn đề này, đối với XL2007 thì hơi khác một chút, ngoài những cái mà Ếch xanh nói là của XL2003, thằng Close Full Screen nó còn nằm ở Right Click trên Cell nữa, vì vậy, code phải viết khác một chút:

PHP:
Private Sub Workbook_Activate()
  On Error Resume Next
  With Application
    .DisplayFullScreen = True
    .CommandBars(1).Controls("View").Controls("Full Screen").Enabled = False
    .CommandBars("Full Screen").Enabled = False
    If .DisplayFullScreen = True Then
      .CommandBars("Cell").Controls("Close Full Screen").Enabled = False
    End If
  End With
End Sub

Sự kiện Deactivate:

PHP:
Private Sub Workbook_Deactivate()
  On Error Resume Next
  With Application
    .CommandBars("Cell").Controls("Close Full Screen").Enabled = True
    .DisplayFullScreen = False
    .CommandBars(1).Controls("View").Controls("Full Screen").Enabled = True
    .CommandBars("Full Screen").Enabled = True
  End With
End Sub

Nhưng có lẽ không có code nào cản được khi Resized Window, nếu nó resized Max thì Full Screen cũng biến mất luôn, cho dù có chạy code:

PHP:
Private Sub Workbook_WindowResize(ByVal Wn As Window)
  On Error Resume Next
  With Application
    If .WindowState = xlMaximized Then
      .DisplayFullScreen = True
      .CommandBars(1).Controls("View").Controls("Full Screen").Enabled = False
      .CommandBars("Full Screen").Enabled = False
      If .DisplayFullScreen = True Then
        .CommandBars("Cell").Controls("Close Full Screen").Enabled = False
      End If
    End If
  End With
End Sub

Mặc dù vậy, nó vẫn hoạt động khi Window của Excel resized (Không phải cửa sổ lớn nhé).
 
Upvote 0
với vấn đề này, đối với xl2007 thì hơi khác một chút, ngoài những cái mà ếch xanh nói là của xl2003, thằng close full screen nó còn nằm ở right click trên cell nữa, vì vậy, code phải viết khác một chút:

PHP:
private sub workbook_activate()
  on error resume next
  with application
    .displayfullscreen = true
    .commandbars(1).controls("view").controls("full screen").enabled = false
    .commandbars("full screen").enabled = false
    if .displayfullscreen = true then
      .commandbars("cell").controls("close full screen").enabled = false
    end if
  end with
end sub

sự kiện deactivate:

PHP:
private sub workbook_deactivate()
  on error resume next
  with application
    .commandbars("cell").controls("close full screen").enabled = true
    .displayfullscreen = false
    .commandbars(1).controls("view").controls("full screen").enabled = true
    .commandbars("full screen").enabled = true
  end with
end sub

nhưng có lẽ không có code nào cản được khi resized window, nếu nó resized max thì full screen cũng biến mất luôn, cho dù có chạy code:

PHP:
private sub workbook_windowresize(byval wn as window)
  on error resume next
  with application
    if .windowstate = xlmaximized then
      .displayfullscreen = true
      .commandbars(1).controls("view").controls("full screen").enabled = false
      .commandbars("full screen").enabled = false
      if .displayfullscreen = true then
        .commandbars("cell").controls("close full screen").enabled = false
      end if
    end if
  end with
end sub

mặc dù vậy, nó vẫn hoạt động khi window của excel resized (không phải cửa sổ lớn nhé).
dù sao cũng thank bạn. Hic chỉ tiếc không khóa duoc.
 
Upvote 0
sao mình dùng:
Private Sub Workbook_Activate()
Application.DisplayFullScreen = True
End Sub
Private Sub Workbook_Deactivate()
Application.DisplayFullScreen = False
End Sub

khi mở file không hiện full screen tự động vậy? anh chị nào biết chỉ em với.
 
Upvote 0
sao mình dùng:
Private Sub Workbook_Activate()
Application.DisplayFullScreen = True
End Sub
Private Sub Workbook_Deactivate()
Application.DisplayFullScreen = False
End Sub

khi mở file không hiện full screen tự động vậy? anh chị nào biết chỉ em với.

Bạn đặt những sự kiện này tại đâu vậy bạn?
 
Upvote 0
ALT + F11, pass vào chỗ module 1 và lưu file xlsm.
 
Upvote 0
chứ làm sao, em làm vậy mà, trước em học cũng vậy mà.
nhập trong module, thisworkbook hoặc sheet đều được mà. có sao đâu.
 
Upvote 0
Em làm như file dưới anh xem em sai chỗ nào, góp ý giùm em với. cảm ơn
 

File đính kèm

Upvote 0
Em làm như file dưới anh xem em sai chỗ nào, góp ý giùm em với. cảm ơn
Bạn làm đúng nhưng thừa ---> Chỉ cần cho code vào Thisworkbook là đủ. Code ở những chổ khác hãy xóa hết (vì có để cũng không có tác dụng gì)
Tuy nhiên, dù rằng code thừa nhưng chắc chắn nó vẫn sẽ chạy. Còn nếu nó chưa chạy thì có nghĩa là bạn chưa Enable Macros
Thế thôi!
 
Upvote 0
Đối với office 2003 thì ok, không có sao cả, nhưng khi làm trên office 2007 thì lại không được, nếu vào code chọn run macro thì nó mới chạy.
Đó là điều em cần.
thanks!
 
Upvote 0
Đối với office 2003 thì ok, không có sao cả, nhưng khi làm trên office 2007 thì lại không được, nếu vào code chọn run macro thì nó mới chạy.
Đó là điều em cần.
thanks!
Chẳng hiểu sao bạn lại không chạy được. Tôi thì chạy bình thường

[video=youtube;F9oyRt2yxN8]http://www.youtube.com/watch?v=F9oyRt2yxN8[/video]
 

File đính kèm

Upvote 0
Code cửa bài 2 và 7 điều sử dung cho office 2010 tuốt - chạy tuyệt vời
 
Upvote 0
Code #2 và #7 mình thử trên office 2010 được tuốt - thật tuyêt vời ...tầm nhìn thoáng ...
 
Upvote 0
FullScreen Office 2003 - 2010

dù sao cũng thank bạn. Hic chỉ tiếc không khóa duoc.

mình cũng nghĩ như bạn vậy ... sau này tiện mình làm được úp lên cho bạn và mọi người tham khảo nhé( nó khóa hết bạn có Restore cũng không được và khi thu nhỏ lai mở lên vẫn i chang như cũ)- chính xác là nó ko khóa mà kết hợp với code đồng hồ nó chạy Auto thôi
 

File đính kèm

Upvote 0
mình cũng nghĩ như bạn vậy ... sau này tiện mình làm được úp lên cho bạn và mọi người tham khảo nhé( nó khóa hết bạn có Restore cũng không được và khi thu nhỏ lai mở lên vẫn i chang như cũ)- chính xác là nó ko khóa mà kết hợp với code đồng hồ nó chạy Auto thôi

Nhưng bạn định biểu diễn cái gì? Bạn không cho tôi Restore, và sử dụng các menu?

Cách vô hiệu hóa: Alt + F11 --> tắt "đồng hồ" --> quay lại sheet --> Restore --> Max

Nếu bạn muốn biểu diễn thì thêm chút rào cản nữa, chứ cái tôi thao tác ở trên thì ít ra 80% đều biết.
 
Upvote 0
vì em có làm một tiện ích nhỏ mong muốn mõi lần mở lên là nó ở chế độ fullScreen thôi. để làm việc cho nó thoáng thôi chứ không nghĩ đến vấn đề khác... cảm ơn anh ... mà vô hiệu hóa: Alt + F11 hay khóa pass làm gì chứ mấy thứ đó GPE mở trong nháy mắt phải ko anh... chủ yếu phục vụ cho công việc của mình thôi thấy thoáng làm việc gọn là ok rồi .. còn cản ư ... bác bill nhiều cái vẫn bó tay đấy bác ạ
 
Upvote 0
vì em có làm một tiện ích nhỏ mong muốn mõi lần mở lên là nó ở chế độ fullScreen thôi. để làm việc cho nó thoáng thôi chứ không nghĩ đến vấn đề khác... cảm ơn anh ... mà vô hiệu hóa: Alt + F11 hay khóa pass làm gì chứ mấy thứ đó GPE mở trong nháy mắt phải ko anh... chủ yếu phục vụ cho công việc của mình thôi thấy thoáng làm việc gọn là ok rồi .. còn cản ư ... bác bill nhiều cái vẫn bó tay đấy bác ạ
Dòng màu đỏ: Không mấy ai cũng mở khóa được! Vả lại theo tôi, vẫn phải dùng Password, ít nhất là cũng lường được những tay mơ phá bỉnh hay lỡ tay xóa dữ liệu của mình.
 
Upvote 0
vì em có làm một tiện ích nhỏ mong muốn mõi lần mở lên là nó ở chế độ fullScreen thôi. để làm việc cho nó thoáng thôi chứ không nghĩ đến vấn đề khác... cảm ơn anh ... mà vô hiệu hóa: Alt + F11 hay khóa pass làm gì chứ mấy thứ đó GPE mở trong nháy mắt phải ko anh... chủ yếu phục vụ cho công việc của mình thôi thấy thoáng làm việc gọn là ok rồi .. còn cản ư ... bác bill nhiều cái vẫn bó tay đấy bác ạ

Tôi không nói "cản" mà viết: "thêm chút rào cản nữa". Tức là làm khó thêm một chút nữa. Không dám nghĩ tới việc "khóa không thể bẻ nổi". Đơn giản vì cuộc sống cho thấy là nên cẩn thận khi dùng từ "không thể".

Thì Titanic được gắn cho huy hiệu "không thể chìm" chả đã chìm ngay từ chuyến đi đầu tiên là gì?
 
Upvote 0

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

Back
Top Bottom