Cách thay đổi hình ảnh trong UserForm VBA theo lựa chọn của Combobox

Việc sử dụng hình ảnh trong UserForm đem lại hiệu quả thẩm mỹ rất cao. Và một trong những ứng dụng rất phổ biến về việc sử dụng hình ảnh trong UserForm là thiết lập hình ảnh tự động thay đổi theo nội dung được chọn của Combobox. Sau đây chúng ta cùng tìm hiểu cách thay đổi hình ảnh trong UserForm VBA theo lựa chọn của Combobox.

Kết quả cần đạt được của chúng ta như sau:

Các bước thực hiện bao gồm:

1. Tạo UserForm gồm có Combobox và Image

Các bạn có thể tải về file mẫu để áp dụng làm theo bài hướng dẫn tại địa chỉ: http://bit.ly/2JBEYn2

Trong file này đã tạo sẵn 1 UserForm, trong đó có chứa Combobox là cbSale và đối tượng chứa hình ảnh là Image1

Các bạn có thể thiết lập 1 vài nội dung cho phần Image1 như:

  • Không sử dụng đường viền, làm chìm khung của Image1 (BackStype / 0-fmBackStyleTransparent)
  • Tự động co dãn ảnh cho vừa với khung (PictureSizeMode / 1-fmPictureSizeModeStretch)

(xem thêm: Hướng dẫn cách chèn ảnh vào Userform VBA đơn giản nhất)

2. Chuẩn bị hình ảnh để nạp vào Image1

Để đảm bảo cho việc danh sách của chúng ta có thể có nội dung để chọn và có hình ảnh để thay đổi thì cần chuẩn bị sẵn 1 vài hình ảnh. Trong file tải về ở trên đã có kèm theo 1 vài hình ảnh. Các bạn có thể lưu những hình ảnh đó vào chung 1 thư mục.

Giả sử chúng ta có các hình ảnh như sau:

Địa chỉ thư mục là D:\03_HEO2018\12_Userform-Get-Picture-by-combobox

Để xem địa chỉ thư mục thì các bạn click chuột vào phần đường dẫn của thư mục đó.

Lưu ý: trong các hình trên cần đặt tên để dễ dàng khi chọn trong Combobox (thường không sử dụng tên tiếng việt có dấu bởi VBA có thể mắc lỗi khi không đọc được)

3. Viết Code thay đổi hình ảnh trong Image1 theo lựa chọn của Combobox

Ở đây chúng ta cần tách 2 phần giai đoạn. Cả 2 câu lệnh theo 2 giai đoạn đều được viết trong cửa sổ View Code của UserForm1

Giai đoạn 1: Nạp danh sách cho Combobox theo tên của các ảnh

Trong thủ tục UserForm_Initialize (khai báo ban đầu cho UserForm) chúng ta viết câu lệnh như sau:

Trong câu lệnh này lưu ý:

  • Địa chỉ đường dẫn tới thư mục nơi chứa ảnh: Tùy theo máy tính của bạn đang đặt ảnh ở đâu thì sửa đường dẫn theo vị trí đó
  • Các ảnh là dạng file .jpg . Lưu ý xác định dạng ảnh theo đúng dạng đuôi (png hay jpg) để viết cho đúng
  • Tên combobox trong ví dụ là cbSale. Nếu các bạn đặt tên khác thì phải viết lại đúng tên của combobox đó.

(xem thêm: Hướng dẫn cách tạo danh sách chọn cho combobox trong userform VBA Excel)

Giai đoạn 2: Nạp ảnh vào Image1 dựa vào nội dung được chọn trong Combobox

Câu lệnh này đơn giản hơn, bởi chỉ cần căn cứ theo sự kiện thay đổi nội dung trong combobox để tải hình ảnh đúng với tên được chọn trong combobox. Cách viết như sau:

Xong rồi, bây giờ hãy mở UserForm lên và thưởng thức thành quả nào.

Các bạn có thể tải về file mẫu tại địa chỉ: http://bit.ly/2t29SOa

Để tìm hiểu thêm nhiều kiến thức về VBA, mời bạn tham dự khóa học VBA101 – Tự động hóa Excel với lập trình VBA. Đây là khóa học rất hữu ích dành cho bạn, giúp bạn hiểu một cách bài bản về VBA và cách sử dụng VBA, ứng dụng VBA vào công việc để tăng hiệu quả. Hãy cùng khám phá nào: