Cách tùy chỉnh các phím tắt Excel 2016 trong VBA

0
136

Trước Excel 2007, các lập trình viên VBA đã sử dụng đối tượng CommandBar để tạo các menu tùy chỉnh, thanh công cụ tùy chỉnh và các phím tắt tùy chỉnh (nhấp chuột phải). Bắt đầu với Excel 2007, đối tượng CommandBar ở một vị trí khá kỳ lạ. Nếu bạn viết mã để tùy chỉnh menu hoặc thanh công cụ, Excel sẽ chặn mã đó và bỏ qua nhiều lệnh của bạn.

Thay vì hiển thị cải tiến giao diện được cân nhắc kỹ lưỡng của bạn, Excel 2007 (như các phiên bản mới hơn) chỉ cần bỏ các menu và thanh công cụ tùy chỉnh của bạn vào tab Ribbon bắt tất cả có tên Bổ trợ.

Các tùy chỉnh menu và thanh công cụ kết thúc trong Bổ trợ → Lệnh Menu hoặc nhóm Bổ trợ → Thanh công cụ tùy chỉnh. Nhưng việc tùy chỉnh các menu phím tắt (cũng sử dụng đối tượng CommandBar) vẫn hoạt động như nó luôn có – tốt, sắp xếp.

Dòng dưới cùng? Đối tượng CommandBar không còn hữu ích nữa, nhưng nó vẫn là cách duy nhất để tùy chỉnh các menu phím tắt.

Thêm một mục mới vào menu phím tắt di động

Dưới đây, bạn sẽ tìm thấy mã mẫu thêm một mục mới vào menu phím tắt xuất hiện khi bạn nhấp chuột phải vào một ô. Bạn sẽ có thể thích ứng những ví dụ này với nhu cầu của bạn.

Bạn có thể nâng cao tiện ích Change Case một chút bằng cách cung cấp tiện ích này từ menu phím tắt di động.

Quy trình AddToShortcut thêm một mục menu mới vào menu Phím tắt di động. Bạn có thể điều chỉnh nó để trỏ đến các macro của riêng bạn bằng cách thay đổi các thuộc tính Chú thích và OnAction của đối tượng có tên NewControl.

Sub AddToShortCut ()   
Thanh Dim là CommandBar
Dim NewControl As CommandBarButton XóaFromShortcut
Đặt Bar = Application.CommandBars (Di di di)
Đặt NewControl = Bar.Controls.Add _ (Loại: = msoControlButton, ID: = 1, _ tạm thời: = Đúng)
Với NewControl
.Caption = Dịch vụ & Thay đổi Case
.OnAction = đổi ChangeCase
.Style = msoButtonIconAndCaption
Kết thúc với Kết thúc phụ

Quy trình DeleteFromShortcut xóa mục menu mới khỏi menu Phím tắt di động:

Xóa phụFromShortcut ()   
Khi xảy ra lỗi Tiếp tục
Application.CommandBars (Nhật ký di động). Điều khiển _
(Ngay lập tức & Thay đổi trường hợp). Xóa
Kết thúc phụ

Điều này cho thấy cách mục menu mới được hiển thị sau khi bạn nhấp chuột phải vào một ô

Lệnh thực tế đầu tiên sau khi khai báo một vài biến gọi thủ tục DeleteFromShortcut. Tuyên bố này đảm bảo rằng chỉ có một mục menu Trường hợp thay đổi xuất hiện trên menu Phím tắt. Hãy thử nhận xét dòng đó (đặt dấu nháy đơn ở đầu dòng) và chạy thủ tục một vài lần – nhưng đừng để bị mang đi!

Bấm chuột phải vào một ô và bạn có thể thấy nhiều phiên bản của mục menu Thay đổi trường hợp. Loại bỏ tất cả các mục bằng cách chạy DeleteFromShortcut nhiều lần (một lần cho mỗi mục menu bổ sung).

Cuối cùng, bạn cần một cách để thêm mục menu phím tắt khi sổ làm việc được mở và xóa mục menu khi đóng sổ làm việc. Làm điều này là dễ dàng. Chỉ cần thêm hai thủ tục sự kiện này vào mô-đun mã ThisWorkbook:

Sổ làm việc phụ riêng_Open () 
Gọi AddToShortCut
Kết thúc phụ
Sổ làm việc phụ riêng tư_B BeforeC Đóng (Hủy dưới dạng Boolean)
Gọi DeleteFromShortcut
Kết thúc phụ

Quy trình Workbook_Open được thực thi khi sổ làm việc được mở và quy trình Workbook_B BeforeClose được thực thi trước khi đóng sổ làm việc. Chỉ cần những gì bác sĩ đã ra lệnh.

Excel 2013 và Excel 2016 có gì khác biệt?

Nếu bạn đã sử dụng VBA để làm việc với các menu phím tắt trong Excel 2007 trở về trước, bạn cần lưu ý về một thay đổi quan trọng.

Trước đây, nếu mã của bạn sửa đổi menu phím tắt, sửa đổi đó có hiệu lực cho tất cả các sổ làm việc. Ví dụ: nếu bạn đã thêm một mục mới vào menu bấm chuột phải vào ô, mục mới đó sẽ xuất hiện khi bạn bấm chuột phải vào một ô trong bất kỳ sổ làm việc nào (cộng với các sổ làm việc khác mà bạn mở sau này). Nói cách khác, sửa đổi menu phím tắt đã được thực hiện ở cấp ứng dụng .

Excel 2013 và Excel 2016 sử dụng một giao diện tài liệu duy nhất và điều đó ảnh hưởng đến các menu phím tắt. Những thay đổi mà bạn thực hiện đối với menu phím tắt chỉ ảnh hưởng đến cửa sổ sổ làm việc đang hoạt động. Khi bạn thực thi mã sửa đổi menu phím tắt, menu phím tắt cho các cửa sổ khác với cửa sổ đang hoạt động sẽ không được thay đổi. Đây là một sự khởi đầu triệt để từ cách mọi thứ được sử dụng để làm việc.

Dòng dưới cùng: Trước đây, nếu bạn đã mở một sổ làm việc hoặc bổ trợ các menu phím tắt đã sửa đổi đó, bạn có thể yên tâm rằng các menu phím tắt đã sửa đổi sẽ có sẵn trong tất cả các sổ làm việc. Bạn không còn có sự đảm bảo đó.

Xem thêm: Cách thực hiện thủ tục phụ VBA trong Excel 2016

Khóa học VBA Excel tại Hà Nội