Hướng dẫn cách tạo nút bấm ẩn hiện đường kẻ hình vẽ trong Excel bằng VBA

Khi tạo Shapes (hình khối, đường thẳng, mũi tên …) chúng ta thấy rằng chúng luôn có sẵn trong Excel. Nhưng không phải lúc nào chúng ta cũng muốn như vậy mà chỉ cần nhấn 1 nút là Shapes sẽ hiện ra, nhấn lại nút đó thì Shapes sẽ bị ẩn đi. VBA sẽ giúp bạn làm điều đó. Hãy cùng Học Excel Online tìm hiểu cách tạo nút để ẩn đường kẻ và hình vẽ trong Excel với VBA ngay sau đây.

Ví dụ:

Trong tệp Excel, chúng ta có 2 Hình dạng bao gồm:

  • Hình mũi tên: biểu diễn từ A đến B
  • Hình chữ nhật: khi bấm vào hình này sẽ ẩn / hiện hình mũi tên

Tải game crack việt hoá tại: https://daominhha.com

Ghi lại các macro tô màu cho hình dạng

Ẩn / hiển thị Hình dạng về cơ bản là tô màu (bao gồm màu nền và màu đường viền) hoặc loại bỏ màu của Hình dạng đó. Vì vậy, để bắt đầu, chúng ta cần biết cách tô màu / hủy màu cho mã Hình dạng.

Tiến hành như sau:

  • Trong tab Nhà phát triển, nhấp vào nút Ghi Macro
  • Bấm vào Hình mũi tên
  • Trong tab Định dạng (tab này xuất hiện khi nhấp vào Hình dạng) điền vào Tô hình dạng và Đường viền hình dạng, ví dụ: tô màu Cam Dấu 2

  • Sau khi thực hiện việc này, hãy quay lại tab Nhà phát triển và sau đó nhấp vào Dừng ghi

Chúng tôi nhận được mã sau trong VBA:

>>> Xem thêm:  Sử dụng thuộc tính speech để nghe VBA nói

Trong đoạn mã trên, chúng ta thấy: đối tượng làm việc ở đây bao gồm 2 đối tượng:

  • Shapes.Fill là màu nền của Shapes
  • Shapes.Line là đường bao của Shapes

Đoạn mã trên có thể được viết lại thành macro HienShape như sau:

Phụ HienShape ()

Với ActiveSheet.Shapes (“Mũi tên phải 3”). Điền

.Vible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorAccent2

Kết thúc với

Với ActiveSheet.Shapes (“Mũi tên phải 3”). Dòng

.Vible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorAccent2

Kết thúc với

Kết thúc Sub

Nội dung có giá trị = 0 có thể được loại bỏ, không sử dụng trong câu lệnh mà không ảnh hưởng đến bất cứ điều gì. Ở đây chúng tôi chỉ quan tâm đến hai thuộc tính:

  • Có thể nhìn thấy: xuất hiện hoặc không. Với msoTrue, nó có mặt và msoFalse không có
  • ForeColor.ObjectThemColor: tô màu đối tượng

Hình dạng macro ẩn

Dựa vào Macro tô màu hình dạng ở trên, chúng ta thấy rằng khi đặt thuộc tính Visible = msoFalse thì đối tượng sẽ không xuất hiện. Do đó, hình dạng macro ẩn có thể được viết như sau:

Phụ AnShape ()

Với ActiveSheet.Shapes (“Mũi tên phải 3”). Điền

.Vible = msoFalse

Kết thúc với

Với ActiveSheet.Shapes (“Mũi tên phải 3”). Dòng

.Vible = msoFalse

Kết thúc với

Kết thúc Sub

Lệnh ẩn / hiện Hình dạng mỗi lần nhấp

Giống như nguyên lý hoạt động của công tắc đèn:

  • Khi nhấn công tắc sang chế độ ON, đèn sáng
  • Khi nhấn công tắc sang chế độ TẮT, bóng đèn sẽ tắt

Chúng ta sẽ viết mã để ẩn / hiển thị hình dạng mỗi khi chúng ta nhấp vào Ẩn / Hiện hình dạng như sau:

  • Giá trị quy ước 1 đại diện cho Ẩn / Hiện, ví dụ 1 là Hiển thị, 0 là Ẩn
  • Mỗi khi bạn nhấp để hiển thị, hãy gán giá trị 1 cho một ô nhất định (ví dụ: ô D2)
  • Mỗi khi bạn nhấp để ẩn, hãy gán giá trị 0 cho ô D2 thay vì giá trị 1
  • Nếu giá trị của ô D2 là 0, nó sẽ thay đổi thành 1 và khi giá trị của ô D2 là 1, nó sẽ chuyển thành 0
>>> Xem thêm:  So sánh hai danh sách và tách các thành phần giống nhau, khác nhau

Lệnh được viết như sau:

Phụ AnHienShape ()

Nếu như Phạm vi (“D2”). Giá trị = 0 Thì ‘Nếu giá trị của ô D2 là 0, thì

Gọi HienShape ‘Chạy lệnh HienShape
Phạm vi (“D2”). Giá trị = 1 ‘Thay đổi giá trị tại D2 thành 1

ElseIf Phạm vi (“D2”). Giá trị = 1 Thì ‘Nếu giá trị của ô D2 là 1, thì

Gọi AnShape ‘Chạy lệnh AnShape
Phạm vi (“D2”). Giá trị = 0 ‘Chuyển đổi giá trị D2 thành 0

EndIf ‘Kết thúc cấu trúc IF

Kết thúc Sub

Sau đó, chúng tôi gán Macro AnHienShape cho Ẩn / Hiện Hình dạng trong Trang tính như sau:

  • Nhấp chuột phải vào hình dạng Ẩn / hiện
  • Chọn Chỉ định Macro
  • Trong cửa sổ Gán Macro, chọn macro AnHienShape

Sau đó, mỗi lần chúng ta nhấp vào Ẩn / Hiện Hình dạng, chúng ta sẽ chạy Macro AnHienShape một lần. Kết quả thu được như sau:

Rất thú vị đúng không. Chúc may mắn khi áp dụng kiến ​​thức này vào công việc của bạn. Tải file tài liệu đính kèm bài viết tại:

Ngoài ra, bạn có thể tham khảo thêm một số bài viết sau:

Cách gán macro cho biểu tượng nút điều khiển được tạo bởi Shapes trong Excel

Hướng dẫn cách tạo menu liên kết nhiều hàm trong Excel với VBA

Hướng dẫn cách sửa Hình dạng mà không có thay đổi ngoài ý muốn trong Excel

Nguồn : Blog hocexcel