Cách tạo menu chuyển động đẹp trong Excel sử dụng VBA

Trong khi trình bày một báo cáo động, một Dashboard, đã khi nào bạn cảm thấy thiếu vị trí cho những menu nút bấm và tùy chọn trên bảng tính Excel chưa? Nếu bạn đã gặp phải vấn đề này, thì một menu có thể ẩn đi khi không cần và mở ra khi cần sẽ giúp bạn tiết kiệm được rất nhiều vị trí trên bảng tính của mình. Ngoài việc áp dụng cho báo cáo trong Excel, kỹ thuật trong bài này còn có thể áp dụng cho trường hợp bạn đang xây dựng menu điều hướng cho bảng tính hoặc thậm chí cho cả phần mềm Excel của bạn. Trăm nghe không bằng một thấy, bạn hãy tham khảo đoạn video ngắn sau đây để biết chúng ta sẽ làm gì cùng nhau trong bài viết này

Ở bài viết này, chúng ta sẽ bắt đầu bằng việc thiết lập các Shapes sử dụng làm nút bấm và menu, sau đó chúng ta sẽ đi viết code VBA để điểu khiển menu có thể ẩn / hiện hoặc chuyển động. Đi kèm theo bài viết có một video, để bạn có thể tham khảo cùng với nội dung bài viết này.

Thiết lập các Shapes và Icon cho Menu trong Excel

Thiết lập các Shape làm nút bấm và Menu

Đầu tiên, trên một tài liệu Excel của bạn, chúng ta sẽ thêm 2 hình chữ nhật, một hình làm nút ẩn hiện Menu, và 1 nút làm Menu bằng cách bấm vào thẻ Insert > Chọn Shapes trong nhóm lệnh Illustrations > sau đó chọn hình dạng của nút bấm mà bạn muốn. Ở đây, mình chọn cả phần Menu và phần nút bấm là hình chữ nhật.

Cách tạo menu chuyển động đẹp trong Excel

Sau đó, bạn bấm chuột phải vào hình chữ nhật sẽ dùng làm Menu và bấm Edit Text để có thể viết nội dung cho nút bấm này

cach-tao-menu-chuyen-dong-dep-trong-excel-02

Thiết lập các biểu tượng cho Menu sử dụng Icon

Nếu phiên bản Excel của bạn có hỗ trợ sử dụng Icon – các biểu tượng trực tiếp từ Microsoft, bạn có thể bấm vào thẻ Insert > sau đó bấm chọn Icon và chọn cho mình những biểu tượng menu phù hợp với Dashboard báo cáo và ứng dụng Excel của bạn.

cach-tao-menu-chuyen-dong-dep-trong-excel-03

Sau đó, khi bạn đang ở trong chế độ chỉnh sửa của 1 Shape hoặc Icon, hãy bấm vào thẻ Shape Format, Selection Pane. Thường Selection Pane sẽ xuất hiện bên tay phải của bảng tính, để dễ dàng làm việc hơn, các bạn có thể kéo sang phía bên trái như trong hình vẽ Thanh làm:

cach-tao-menu-chuyen-dong-dep-trong-excel-04

Đặt tên cho các Shape, Icon trong Selection Pane

Bước tiếp theo, chúng ta sẽ đi đặt tên cho từng thành phần giao diện của chúng ta như chú thích trong hình sau bằng cách click đúp chuột vào tên tương ứng trong Selection Pane

dat-ten-cac-thanh-phan-tren-giao-dien

Sau đó, chúng ta bấm giữ Ctrl và chọn từng Shape trong Selection Pane, trừ nút btnShowHide, tiếp theo, bấm chuột phải vào các hình được lựa chọn và bấm tiếp Group > Group

cach-tao-menu-chuyen-dong-dep-trong-excel-05

Sau khi nhóm xong các hình ảnh, chúng ta đặt tên cho Group này là MenuGroup

cach-tao-menu-chuyen-dong-dep-trong-excel-06

Như vậy chúng ta đã thiết lập xong hệ thống menu rồi. Bước tiếp theo chúng ta sẽ đi viết code VBA để giúp Menu có thể ẩn hoặc hiện khi click vào nút Ẩn / Hiện Menu

Code VBA giúp ẩn hiện menu

Để giúp Menu của chúng ta chuẩn bị ở phần trên có thể ẩn hiện khi click vào nút Ẩn / Hiện Menu, thì chúng ta sẽ bắt đầu bằng việc bấm chuột phải vào nút Ẩn / Hiện Menu sau đó chọn Assign Macro …

Ở cửa sổ Assign Macro, các bạn sẽ nhìn thấy công sức đi đổi tên lại các Shape nãy giờ quả là không lãng phí, khi Excel đã gợi ý đúng cho chúng ta tên Macro và mục đích sử dụng trong ô Macro name, nếu bạn đồng ý với sự gợi ý này, hãy bấm nút New để tạo 1 Macro mới.

Nếu bạn chưa biết bắt đầu học lập trình VBA cơ bản ở đâu và như thế nào, hãy tham khảo khóa học: VBA101 – Tự động hoá Excel với lập trình VBA cho người mới bắt đầu

 cach-tao-menu-chuyen-dong-dep-trong-excel-07

Trong Sub btnShowHide_Click hãy điền dòng code VBA sau đây vào

Sheet1.Shapes("MenuGroup").Visible = Not Sheet1.Shapes("MenuGroup").Visible

Tương tự với các nút Icon trên menu, bạn có thể viết code sự kiện tương tự để thực hiện code mà bạn muốn, ví dụ như sau

Sub MenuItemMail_Click()
  MsgBox "MenuItemMail" 'Thay bằng code VBA của bạn
End Sub
Sub MenuItemDownload_Click()
  MsgBox "MenuItemDownload"
End Sub
Sub MenuItemContact_Click()
  MsgBox "MenuItemContact"
End Sub

Và chỉ đơn giản vậy thôi, bạn đã có thể tạo ra được Menu ẩn hiện bằng các Shapes và một ít code VBA rồi. Hãy theo dõi thêm video kèm theo bài viết này để có thể làm theo các thao tác trong bài một cách chính xác nhất nhé. Phần tạo Menu chuyển động, mình sẽ cập nhật trong khóa học lập trình VBA201 nâng cao

YouTube video

Tác giả: dtnguyen (Nguyễn Đức Thanh)

@ Học Excel Online | DTNguyen.business
· · ·

Khóa học mới xuất bản