Hướng dẫn cách chèn ảnh vào Excel bằng VBA dễ hiểu nhất
I. Tại sao nên chèn ảnh vào Excel
- Minh họa cho những biểu đồ, số liệu bán hàng hoặc hình ảnh cụ thể của sản phẩm
- Diễn tả những thông tin khó diễn tả bằng lời
- Làm cho hình minh họa bảng dữ liệu dễ hiểu hơn
- Chèn thêm hình ảnh để nội dung trực quan và sinh động hơn
- Thêm logo hoặc hình ảnh đặc trưng công ty của bạn để củng cố nhận diện thương hiệu của mình.
II. Lý do bạn nên chèn ảnh vào Excel bằng VBA
-
VBA cho phép bạn tự động hóa quá trình chèn ảnh, điều này có thể giúp bạn tiết kiệm rất nhiều thời gian, công sức và dễ mắc lỗi khi bạn thực hiện thủ công trên excel.
- Tự do tùy chỉnh cách ảnh được chèn vào Excel (tùy chỉnh kích cỡ ảnh, vị trí ảnh, áp dụng định dạng cho ảnh,...)
- Có thể sử dụng VBA để cập nhật ảnh dựa trên dự liệu cơ sở đã được xác định
- Thực hiện được cùng lúc nhiều thao tác trên ảnh
III. Cách chèn ảnh vào Excel bằng VBA
Lưu ý trước khi chèn ảnh vào Excel bằng VBA:
- Kích cỡ tệp: Kích cở ảnh quá lớn có thể khiến việc mở và làm việc chậm hơn. Cố gắng giữ kích thước tệp ảnh của bạn càng nhỏ càng tốt mà không ảnh hưởng đến chất lượng của chúng.
- Khả năng tương thích: Không phải tất cả các định dạng tệp hình ảnh đều tương thích với Excel. Nói chung, bạn nên sử dụng các định dạng như JPEG, PNG hoặc BMP. Tránh sử dụng các định dạng như GIF, TIFF hoặc SVG.
- Vị trí: Đảm bảo đường dẫn tệp chính xác và tệp ảnh có thể truy cập được.
- Chia tỷ lệ: xem xét ảnh sẽ được chia tỷ lệ như thế nào so với phần còn lại của trang tính. Tùy thuộc vào kích cỡ của ảnh và kích cỡ của trang tính, bạn có thể cần điều chỉnh kích cỡ ảnh hoặc chia tỷ lệ động dựa trên kích cỡ trang tính
1. Chèn ảnh vào Excel
Đầu tiên bạn phải có thẻ Developer trong Excel “ Mở thẻ Developer trong VBA Excel và Lưu file“
Bước 1: Mở Visual Basic
Trong thẻ Developer => nhóm Code => chọn Visual Basic
Hoặc bạn nhấn ALT + F11 để mở Visual Basic

Bước 2: Tạo, Chạy, Lưu Marco
Bên mình đã có làm 1 bài viết hướng dẫn cụ thể, chi tiết về tạo, chạy, lưu Marco “ Hướng dẫn cụ thể cách sử dụng Marco ”. Bạn xem bên này để tạo bước này nhé.
Bước 3: Chèn Code
Sau bước 2, cửa sổ VBA sẽ mở và hiện code cho macro của bạn. Tại Edit Code, code sẽ bao gồm 2 dòng:” Sub “ để bắt đầu macro và “End Sub” để kết thúc nó.

1. Trong Sub chen_anh1 (), xác định một biến đại diện cho trang tính nơi bạn muốn chèn hình ảnh, như sau:

Lưu ý: Thay thế "Sheet1" bằng tên của trang tính bạn muốn.
2. Tiếp theo, xác định một biến để biểu thị đường dẫn tệp của hình ảnh bạn muốn chèn, như sau:

Lưu ý: Thay thế "C:\Images\image1.jpg" bằng đường dẫn tệp của hình ảnh bạn muốn.
3. Bây giờ, hãy sử dụng phương thức Shapes.AddPicture để chèn hình ảnh vào trang tính, như sau:
|
Dim pic As Shape Set pic = ActiveSheet.Shapes.AddPicture("C:\example\picture.jpg", msoFalse, msoTrue, 100, 100, -1, -1) |
Mã này tạo một đối tượng hình dạng mới có tên là "pic" và sử dụng phương thức AddPicture để chèn ảnh vào trang tính. Đường dẫn tệp và tên của tệp ảnh phải được chỉ định giữa các dấu ngoặc kép.
Các tham số cho phương thức AddPicture như sau:
- Filename: đường dẫn file và tên file ảnh cần chèn
- LinkToFile: giá trị boolean xác định có liên kết đến tệp gốc hay nhúng ảnh vào sổ làm việc (được đặt thành "False" trong ví dụ này)
- SaveWithDocument: giá trị boolean xác định có lưu ảnh với sổ làm việc hay không (được đặt thành "True" trong ví dụ này)
- Left: khoảng cách từ cạnh trái của trang tính nơi ảnh sẽ được chèn (tính bằng điểm)
- Top: khoảng cách từ cạnh trên cùng của trang tính nơi ảnh sẽ được chèn (tính bằng điểm)
- Width: chiều rộng của ảnh (tính bằng điểm - points) (được đặt thành "-1" trong ví dụ này để sử dụng kích thước ban đầu của ảnh)
- Height: chiều cao của ảnh (tính bằng điểm) (được đặt thành "-1" trong ví dụ này để sử dụng kích thước ban đầu của ảnh)
4. Cuối cùng, điều chỉnh kích thước và vị trí của hình ảnh khi cần bằng cách sử dụng các thuộc tính của đối tượng img, như sau:

Lưu ý: Hai dòng đầu tiên đặt vị trí của hình ảnh ở góc trên cùng bên trái của ô A1 và hai dòng cuối cùng đặt chiều rộng và chiều cao của hình ảnh thành 100 pixel.
- Lưu và đóng Visual Basic Editor.
Đó là nó! Bây giờ, mỗi khi bạn chạy thủ tục phụ InsertImage(), hình ảnh đã chỉ định sẽ được chèn vào trang tính đã chỉ định
Bước 4: Chạy code
Giờ là lúc xem code hoạt động:
- Đóng cửa sổ VBA.
- Tới tab Developer ở Excel.
- Chọn Macros từ phần Code.
- Đánh dấu macro bạn vừa tạo.
- Click Run.
Một thông báo sẽ mở ra yêu cầu bạn định vị tệp hình ảnh để chèn. Chọn một hình ảnh và nhấp vào Mở. Bây giờ bạn sẽ thấy hình ảnh trong ô A1.
Lưu ý rằng Excel sẽ thu nhỏ hình ảnh để vừa với ô A1. Bạn có thể thay đổi điều này và thay đổi mã để chèn hình ảnh vào các ô khác hoặc thậm chí một dải ô. Trong phần tiếp theo, chúng tôi tách mã và giải thích các tham số.
Bước 5: Chia code
Để làm cho mã VBA hoạt động theo cách bạn muốn, bạn cần hiểu nó. Khi bạn đã hoàn thành việc đó, bạn có thể thay đổi mã của mình để chèn hình ảnh vào bất kỳ ô nào có kích thước bất kỳ.
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1")
Dim filePath As String
filePath = " C:\Images\image1.jpg "
Dim pic As Shape
Set pic = ActiveSheet.Shapes.AddPicture("C:\example\picture.jpg", msoFalse, msoTrue, 100, 100, -1, -1)
img.Left = ws.Range("A1").Left
img.Top = ws.Range("A1").Top
img.Width = 100
img.Height = 100

