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

Thảo luận trong 'Ứng dụng Excel' bắt đầu bởi levanduyet, 18 Tháng ba 2005.

2,351 lượt xem

  1. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    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
     
    #1

Chia sẻ trang này