Bạn vừa từng làm ra (tạo) ra thanh công cụ riêng cho mình? Bạn có thấy rằng, thanh công cụ này luôn luôn được nạp vào Excel, và luôn hiển thị, với bất kỳ bảng tính nào, với bất kỳ người sử dụng nào? Có bao giờ, bạn muốn rằng, thanh công cụ tự làm ra (tạo) này chỉ được hiển thị với một bảng tính cụ thể nào đó mà thôi không?
Ví dụ, bạn tự làm ra (tạo) ra một thanh công cụ có chứa những nút dùng để hỗ trợ chuyện nhập công thức và xử lý bảng (những dấu =, +, -, *, /, những nút dùng để xóa hàng, xóa cột, v.v...), tạm gọi là thanh công cụ A, phục vụ riêng cho bảng tính B. Và bạn muốn, làm thế nào để chỉ khi bạn mở bảng tính B, thì mới thấy thanh công cụ A của bạn, còn mở bảng tính khác, thì chỉ thấy những thanh công cụ mặc định của Excel? Thậm chí trong cùng một cửa sổ Excel, nhưng khi bạn kích hoạt bảng tính B, thì mới thấy thanh công cụ A, còn khi nhấn Ctrl+Tab để chuyển sang bảng tính khác, thì thanh công cụ A này sẽ biến mất?
Thiết nghĩ, chắc hẳn vừa có lúc bạn muốn điều tui vừa nói. Vì nó giúp cho thanh công cụ của Excel luôn gọn gàng, ngăn nắp (luôn là thanh công cụ mặc định của Excel), nếu bất phải là bạn, mà là người khác, thì bất có gì bỡ ngỡ với thanh công cụ lạ hoắc; hay là, chỉ khi nào mở bảng tính B ra, thì mới cần đến thanh công cụ A, còn bình thường thì chẳng cần...
Việc này, bất có gì khó. Bạn chỉ cần chèn một đoạn cipher đơn giản vào trong "Private module" của bảng tính.
Trước hết, bạn hãy làm ra (tạo) cho riêng mình một thanh công cụ. Đặt tên cho nó là "MyCustomToolbar" chẳng hạn.
Tiếp theo, bạn nhấn Alt+F11 để mở cửa sổ Microsoft Visual Basic, nhấn đúp vào This workbook trong khung Project. Bạn cũng có thể làm nhanh chuyện này bằng cách nhấn nút phải chuột vào cái biểu tượng Excel bé tí nằm ngay bên trái card File, rồi chọn View Code, cửa sổ VBA cũng sẽ mở ra với This workbook được chọn sẵn:
Nhấn phải chuột vào biểu tượng Excel nhỏ bên trái card File rồi chọn View Code
Rồi, nhập vào hai đoạn cipher sau đây:
PHP Code:
Option Explicit
--------------------------------------------------------------------
Private Sub Workbook_Activate()
On Error Resume Next
With Application.CommandBars("MyCustomToolbar")
.Enabled = True
.Visible = True
End With
On Error GoTo 0
End Sub
--------------------------------------------------------------------
Private Sub Workbook_Deactivate()
On Error Resume Next
Application.CommandBars("MyCustomToolbar").Enabled = False
On Error GoTo 0
End Sub
Bạn có thể thay thế "MyCustomToolbar" bằng cái tên mà bạn vừa đặt cho thanh công cụ tự làm ra (tạo) của bạn. Sau đó bạn nhấn Alt+Q để trở về Excel.
Để thử, bạn hãy mở thêm một bảng tính nữa, Book2.xls chẳng hạn. Bạn sẽ thấy, khi nào bạn chọn bảng tính mà có đoạn cipher ở trên, thì bạn mới thấy "MyCustomToolbar", còn nếu chọn Book2 (chuyển đổi qua lại giữa các bảng tính bằng Ctrl+Tab), "MyCustomToolbar" biến mất! Chọn lại bảng tính ban đầu, "MyCustomToolbar" xuất hiện lại. Vậy là thành công rồi!
Được voi đòi tiên. Bây giờ, giả sử bạn muốn rằng, trong cùng một bảng tính, nhưng chỉ có Sheet1 thì mới thấy "MyCustomToolbar", còn Sheet khác thì không?
Được thôi. Bạn có thể viết thêm một "Level" nữa cho đoạn cipher trên. Hãy bảo đảm là bạn đang chọn bảng tính có chứa cipher (tốt nhất là bạn đóng cái Book2 đi). Anchorage trở lại cửa sổ VBA, bạn hãy nhấn phải chuột vào Sheet nào mà bạn muốn thấy "MyCustomToolbar", rồi chọn View Cipher (hay nhấn đúp vào tên Sheet đó cũng được). Ở đây tui giả sử bạn chọn Sheet1.
Nhập vào hai đoạn cipher sau đây:
PHP Code:
Option Explicit
--------------------------------------------------------------------
Private Sub Worksheet_Deactivate()
On Error Resume Next
Application.CommandBars("MyCustomToolbar").Enabled = False
On Error GoTo 0
End Sub
--------------------------------------------------------------------
Private Sub Worksheet_Activate()
On Error Resume Next
With Application.CommandBars("MyCustomToolbar")
.Enabled = True
.Visible = True
End With
On Error GoTo 0
End Sub
Rồi nhấn Alt+Q để anchorage lại Excel. Bây giờ, bạn hãy dùng chuột hay nhấn Ctrl+PgUp/Ctrl+PgDn để chọn qua lại các Sheet và xem thử cái gì xuất hiện trên màn hình.
Xin đính kèm theo đây bảng tính vừa có sẵn những đoạn cipher nói trên, cùng một "MyCustomToolbar" làm ví dụ.
Cũng xin nhắc lại, chiêu này chỉ có tác dụng với những phiên bản trước Excel2007.
Trích:
mã nguồn: giải pháp Excel (GPE)