Phục hồi Toolbar của người dùng

  • Thread starter levanduyet
  • Ngày gửi
L

levanduyet

Welcome
16/10/04
535
13
18
HCM
my.opera.com
#1
PHỤC HỒI THIẾT LẬP THANH CÔNG CỤ CỦA NGƯỜI DÙNG.
(Nguồn: XL-Logic.com)
Có bao giờ bạn cảm thấy khó chịu khi mà một ai đó dùng máy của bạn, sử dụng Excel, rồi thay đổi hết cách thiết lập các thanh công cụ của mình không? Có một kỹ thuật để phục hồi lại các thanh công cụ một khi bạn đóng ứng dụng của bạn lại. Đây là đọan mã trong Thisworkbook của tập tin.

Dim UserToolbars As New Collection
Dim AppToolbars As New Collection

Private Sub Workbook_Open()
'Lưu toolbar trước, active toolbar của mình
Define_Toolbar_Collections
Display_App_Toolbars
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Trước khi thóat thì trả lại toolbar như cũ cho người dùng
Display_User_Toolbars
End Sub

Private Sub Define_Toolbar_Collections()
Set AppBars = Application.CommandBars
'Lưu giữ trước khi active toolbar của mình
For Each tb In AppBars
If tb.Visible Then
UserToolbars.Add tb
End If
Next tb
'Active toolbar của bản thân
With AppToolbars
.Add AppBars("Standard")
.Add AppBars("Formatting")
.Add AppBars("Drawing")
End With
End Sub

Private Sub Display_App_Toolbars()
On Error Resume Next
For Each tb In UserToolbars
tb.Visible = False
Next tb
For Each tb In AppToolbars
tb.Visible = True
Next tb
End Sub

Private Sub Display_User_Toolbars()
On Error Resume Next
For Each tb In AppToolbars
tb.Visible = False
Next tb
For Each tb In UserToolbars
tb.Visible = True
Next tb
End Sub
Còn để xác định lọai của commandBar, và tên của chúng các bạn có thể sử dụng đọan code sau:
Nó sẽ đưa ra sheet có tên là Sheet1
Sub ShowCommandBarNames()
Sheets("Sheet1").Activate
Cells.Clear
Row = 1
For Each cbar In CommandBars
Cells(Row, 1) = cbar.Index
Cells(Row, 2) = cbar.Name
Select Case cbar.Type
Case msoBarTypeNormal
Cells(Row, 3) = "Toolbar"
Case msoBarTypeMenuBar
Cells(Row, 3) = "Menu Bar"
Case msoBarTypePopup
Cells(Row, 3) = "Shortcut"
End Select
Row = Row + 1
Next cbar
End Sub
Chúc các bạn thành công.
Lê Văn Duyệt
levanduyet@gmail.com
 

Thành viên trực tuyến

  • Quynh Bui 76
  • tuyet0504
  • daongocnam0603
  • toilatoi50
  • quynhchi10




Xem nhiều