Cách Chèn Ảnh Vào Ô Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao

Mở đầu: Tại sao cần chèn ảnh vào ô Excel?

Excel không chỉ là công cụ tính toán và phân tích dữ liệu mạnh mẽ, mà còn là một nền tảng linh hoạt để trình bày thông tin một cách trực quan. Khi làm việc với danh sách sản phẩm, báo cáo bán hàng, quản lý kho, hay thậm chí là hồ sơ nhân sự, việc đưa hình ảnh trực quan vào từng ô sẽ giúp:

  1. Tăng tính thẩm mỹ: Bảng tính trở nên sinh động, dễ nhìn hơn.
  2. Cải thiện truyền đạt: Người xem nhanh chóng nhận diện sản phẩm, nhân viên, hay bất kỳ đối tượng nào mà hình ảnh đại diện.
  3. Tiết kiệm không gian: Thay vì mở một tài liệu ảnh riêng, mọi thông tin đều gói gọn trong cùng một file Excel.
  4. Hỗ trợ quyết định: Khi so sánh các mặt hàng, hình ảnh giúp người dùng đưa ra quyết định nhanh hơn.

Vậy làm sao để chèn ảnh vào ô một cách chuẩn xác, không làm hỏng bố cục và vẫn giữ được tính linh hoạt khi di chuyển, sao chép hay lọc dữ liệu? Bài viết dưới đây sẽ cung cấp toàn bộ quy trình, từ cách chèn ảnh đơn lẻ, chèn ảnh hàng loạt, tới việc sử dụng VBA để tự động hoá quá trình này. Ngoài ra, chúng tôi cũng sẽ giới thiệu một số mẹo “thủ thuật” giúp ảnh luôn khóa kích thước và đi kèm với nội dung ô khi thực hiện các thao tác chỉnh sửa bảng tính.

1. Chuẩn bị môi trường làm việc

1.1. Kiểm tra phiên bản Excel

Các phương pháp dưới đây áp dụng cho:

  • Excel 2026, 2026, 2026, 2026, Office 365 (các tính năng gần như giống nhau).
  • Excel cho Mac (có một vài khác biệt nhỏ trong giao diện, nhưng nguyên tắc chung vẫn giữ nguyên).
  • Excel Online (hạn chế trong việc chèn ảnh hàng loạt, nhưng vẫn có cách thủ công).

Nếu bạn đang dùng Google Sheets, quy trình sẽ khác và không nằm trong phạm vi bài viết này.

1.2. Định dạng ảnh đề xuất

  • Định dạng: PNG hoặc JPEG. PNG hỗ trợ trong suốt, JPEG nén tốt cho ảnh có nhiều màu sắc.
  • Kích thước: Để tránh làm file Excel nặng, nên giảm kích thước ảnh về khoảng 100×100 pixel (hoặc tùy vào mục đích hiển thị). Có thể dùng công cụ trực tuyến như TinyPNG hay Photoshop để nén.
  • Tên file: Đặt tên ngắn gọn, tránh ký tự đặc biệt, giúp việc lập trình (VBA) dễ dàng hơn.

2. Cách chèn ảnh vào ô một cách thủ công

2.1. Phương pháp “Insert Picture” + “Resize to Cell”

  1. Chọn ô mà bạn muốn đặt ảnh (ví dụ A2).
  2. Vào Insert → Pictures → This Device (hoặc From File).
  3. Duyệt tới vị trí ảnh, chọn và Insert.
  4. Ảnh sẽ xuất hiện trên sheet, không nằm trong ô mà là một object trôi nổi.
  5. Để đưa ảnh vào ô:
  6. Kéo ảnh sao cho góc trên‑trái của ảnh trùng với góc trên‑trái của ô.
  7. Nhấn Ctrl + 1 (hoặc chuột phải → Format Picture) → Size & Properties → bật Move and size with cells. Khi bật tùy chọn này, ảnh sẽ co lại/giãn ra khi thay đổi kích thước ô.
  8. Resize ảnh cho vừa với ô:
  9. Đặt chiều rộng và chiều cao của ô (Right‑click → Column Width / Row Height) sao cho khớp với kích thước ảnh.
  10. Hoặc dùng Format Picture → Size để nhập kích thước cụ thể (ví dụ 80pt × 80pt).

Lưu ý: Khi bạn sao chép (Ctrl + C) và dán (Ctrl + V) ô này, ảnh sẽ được sao chép kèm, nhưng nếu chỉ sao chép giá trị ô (Paste → Values) thì ảnh sẽ không xuất hiện.

2.2. Sử dụng công cụ “Camera” để chụp vùng có ảnh

Nếu bạn muốn chụp nhanh một vùng có chứa ảnh và đặt lại ở vị trí khác:

  1. Thêm Camera vào thanh Ribbon: File → Options → Customize Ribbon → chọn “All Commands”, kéo “Camera” vào một tab tùy chỉnh.
  2. Chọn ô (hoặc vùng) chứa ảnh đã chèn.
  3. Nhấn Camera, con trỏ sẽ biến thành dấu “+”.
  4. Click vào vị trí muốn dán ảnh. Ảnh sẽ hiển thị dưới dạng Picture Object, tự động liên kết với ô gốc (cập nhật khi ô gốc thay đổi).

2.3. Đặt ảnh làm “Background” của ô (không đề xuất)

Excel không hỗ trợ trực tiếp đặt ảnh làm nền ô. Tuy nhiên, bạn có thể:

  • Sử dụng Conditional Formatting kết hợp với Icon Set để hiển thị biểu tượng.
  • Hoặc chèn Shape (hình chữ nhật) vào ô, đặt ảnh làm fill, rồi đặt Shape dưới Text (Right‑click → Send to Back). Cách này phức tạp và không thực sự “đặt ảnh vào ô”.

3. Chèn ảnh hàng loạt (Bulk Insert) – Khi có hàng trăm, nghìn ảnh

Khi làm việc với danh sách sản phẩm có hàng trăm ảnh, việc chèn thủ công sẽ tốn thời gian. Dưới đây là 2 cách chính:

3.1. Dùng Power Query (Get & Transform)

Power Query cho phép kéo dữ liệu từ thư mục và hiển thị ảnh trong bảng:

  1. Chuẩn bị thư mục ảnh: Đặt tất cả ảnh trong một thư mục, đặt tên file sao cho trùng khớp với giá trị trong cột (ví dụ cột “Mã SP” = SP001, ảnh có tên SP001.jpg).
  2. Vào Data → Get Data → From File → From Folder.
  3. Chọn thư mục chứa ảnh → Transform Data.
  4. Power Query sẽ tạo bảng gồm các cột: Name, Extension, Date accessed, Content (binary).
  5. Xóa các cột không cần (Extension, Date, …) và đổi tên cột Name thành Mã SP.
  6. Load bảng này vào một sheet (ví dụ “Images”).
  7. Quay lại sheet chứa dữ liệu chính (ví dụ “Bảng Sản Phẩm”), kết nối hai bảng bằng Merge Queries dựa trên Mã SP.
  8. Khi merge xong, mở cột Content → Add Custom Column → nhập công thức:
    m =Excel.CurrentWorkbook(){Name="Images"}Content{Mã SP=Mã SP}Content
    (công thức này trả về binary data của ảnh tương ứng).
  9. Load lại bảng. Khi bạn định dạng cột Content thành Data Type = Image, Excel sẽ hiển thị ảnh trực tiếp trong ô.

Ưu điểm: Ảnh được nhúng trực tiếp vào ô dưới dạng binary, không phụ thuộc vào đường dẫn. Khi chia sẻ file, ảnh sẽ luôn hiện ra.
Nhược điểm: Dễ làm file Excel nặng, và cần Excel 365 hoặc 2026 trở lên mới hỗ trợ hiển thị ảnh binary.

3.2. Sử dụng VBA để tự động chèn ảnh

Đối với các phiên bản Excel không hỗ trợ Power Query hiển thị ảnh, VBA là giải pháp mạnh mẽ.

3.2.1. Mã VBA cơ bản

Giả sử:

  • Cột A chứa Mã SP.
  • Ảnh nằm trong thư mục C:\Images\, tên file là <Mã SP>.jpg.
  • Bạn muốn chèn ảnh vào cột B (ô B2, B3,…).
Sub InsertPicturesIntoCells() Dim ws As Worksheet Dim rng As Range, cell As Range Dim picPath As String Dim pic As Shape Set ws = ThisWorkbook.Sheets("Sheet1") ' Thay "Sheet1" bằng tên sheet của bạn Set rng = ws.Range("A2:A" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row) ' Dòng dữ liệu For Each cell In rng picPath = "C:\Images\" & cell.Value & ".jpg" ' Đường dẫn ảnh If Dir(picPath) <> "" Then ' Kiểm tra ảnh tồn tại ' Xóa ảnh cũ nếu đã tồn tại trong ô On Error Resume Next ws.Shapes("Img_" & cell.Row).Delete On Error GoTo 0 Set pic = ws.Shapes.AddPicture(Filename:=picPath, _ LinkToFile:=msoFalse, _ SaveWithDocument:=msoCTrue, _ Left:=cell.Offset(0, 1).Left, _ Top:=cell.Top, _ Width:=-1, Height:=-1) ' Đặt tên cho ảnh để quản lý dễ dàng pic.Name = "Img_" & cell.Row ' Đặt thuộc tính Move and size with cells pic.Placement = xlMoveAndSize ' Tự động co ảnh vừa ô (giả sử chiều rộng cột B là 100pt) With pic .LockAspectRatio = msoTrue .Width = cell.Offset(0, 1).Width 0.9 ' 90% chiều rộng ô .Top = cell.Top + (cell.Height - .Height) / 2 ' Căn giữa dọc .Left = cell.Offset(0, 1).Left + (cell.Offset(0, 1).Width - .Width) / 2 End With End If Next cell
End Sub

Giải thích các dòng quan trọng:

  • ws.Shapes.AddPicture chèn ảnh dưới dạng Shape.
  • Placement = xlMoveAndSize làm cho ảnh di chuyển và co lại/giãn ra cùng với ô.
  • LockAspectRatio = msoTrue giữ tỷ lệ gốc, tránh bị méo.
  • cell.Offset(0, 1) là ô bên phải (cột B) – nếu muốn chèn vào cùng ô, dùng cell.

3.2.2. Chèn ảnh vào cùng ô (đặt ảnh phía trên giá trị văn bản)

Nếu bạn muốn ảnh đè lên nội dung ô (ví dụ ảnh sản phẩm + tên sản phẩm), bạn có thể:

  • Đặt Wrap Text cho ô.
  • Sử dụng Top và Left như trên, nhưng không thay đổi ZOrder. Để ảnh nằm trước văn bản, dùng:
    vba pic.ZOrder msoBringToFront

3.2.3. Tự động cập nhật khi thay đổi danh sách

Bạn có thể gắn macro trên vào Worksheet_Change để khi người dùng nhập hoặc thay đổi mã SP, ảnh sẽ tự động được cập nhật:

Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Me.Range("A:A")) Is Nothing Then Call InsertPicturesIntoCells End If
End Sub

Lưu ý: Đặt macro này trong Sheet module, không phải trong Module chuẩn.

3.3. Sử dụng Add‑in “Kutools for Excel”

Chèn Ảnh Vào Ô Trong Excel
Chèn Ảnh Vào Ô Trong Excel

Nếu bạn không muốn viết code, Kutools (một add‑in trả phí) cung cấp tính năng Insert Picture in Cell cho phép chọn một dải ô và một thư mục ảnh, tự động chèn ảnh tương ứng. Giao diện thân thiện, nhưng vẫn cần chuẩn bị tên file trùng khớp.

4. Kiểm soát kích thước và vị trí ảnh – Các tùy chỉnh nâng cao

4.1. Khóa kích thước ảnh

Sau khi chèn, nếu người dùng kéo cột/row, ảnh sẽ tự co lại/giãn ra (đúng ý). Tuy nhiên, khi người dùng kéo ảnh trực tiếp, kích thước có thể bị thay đổi. Để ngăn chặn:

pic.LockAspectRatio = msoTrue
pic.Height = 80 ' Đặt chiều cao cố định (pt)
pic.Width = 80
pic.Placement = xlMoveAndSize

Hoặc trong giao diện:

  • Click chuột phải vào ảnh → Size and Properties → Properties → chọn Move and size with cells.
  • Bỏ tick Allow editing directly in cell (đối với Excel 365 mới).

4.2. Đặt ảnh ở giữa ô (Horizontal & Vertical Center)

With pic .Top = cell.Top + (cell.Height - .Height) / 2 .Left = cell.Left + (cell.Width - .Width) / 2
End With

Nếu muốn ảnh luôn căn giữa bất kể người dùng thay đổi kích thước ô, cần chạy macro trong sự kiện Worksheet_Change hoặc Worksheet_SelectionChange để cập nhật vị trí.

4.3. Thêm tooltip (chuột rê) cho ảnh

Bạn có thể gán Alt Text cho ảnh, hiển thị khi người dùng di chuột:

pic.AlternativeText = "Mã SP: " & cell.Value

Khi di chuột lên ảnh, Excel sẽ hiển thị mô tả (trong Excel mới, có hiển thị như “ScreenTip”).

4.4. Định dạng ảnh (cắt, bo tròn, bóng đổ)

Trong Format Picture → Picture Effects → Soft Edges, Glow, Shadow, bạn có thể:

  • Cắt: Chọn Crop để loại bỏ phần không cần.
  • Bo tròn: Trong Shape Options, chọn Rounded Rectangle và điều chỉnh radius.
  • Bóng đổ: Thêm Shadow để ảnh nổi bật hơn.

Bạn cũng có thể dùng VBA để áp dụng nhanh:

pic.PictureFormat.CropLeft = 0.05 ' Cắt 5% bên trái
pic.PictureFormat.CropRight = 0.05
pic.PictureFormat.CropTop = 0.05
pic.PictureFormat.CropBottom = 0.05

5. Xử lý vấn đề thường gặp

Vấn đềNguyên nhânGiải pháp
Ảnh không di chuyển khi thay đổi kích thước ôThuộc tính Placement chưa được đặt thành xlMoveAndSize.Click ảnh → Format Picture → Properties → chọn Move and size with cells.
File Excel quá nặngẢnh có độ phân giải cao, hoặc chèn nhiều ảnh mà không nén.Nén ảnh trước khi chèn, hoặc sử dụng link thay vì embed (đặt LinkToFile:=msoTrue trong VBA).
Ảnh không hiển thị khi mở trên máy khácĐường dẫn ảnh là absolute và máy không có cùng thư mục.Dùng SaveWithDocument:=msoCTrue để lưu ảnh trong file, hoặc dùng Power Query binary.
Ảnh bị lệch khi inCài đặt in “Fit to page” làm thay đổi tỉ lệ ô.Kiểm tra Print Area và Page Layout → Scale to Fit; đảm bảo ảnh có Placement = xlMoveAndSize.
Không thể sao chép ảnh cùng với dữ liệuDùng “Paste Values” thay vì “Paste”.Chọn Paste → Keep Source Formatting hoặc Ctrl + C, Ctrl + V bình thường.

6. Các trường hợp đặc biệt

6.1. Chèn ảnh vào bảng pivot

PivotTable không cho phép chèn ảnh trực tiếp vào các ô dữ liệu. Tuy nhiên, bạn có thể:

  1. Thêm cột tính toán trong nguồn dữ liệu gốc chứa đường dẫn ảnh.
  2. Khi tạo Pivot, kéo trường này vào Values → chọn Max (hoặc First) để giữ lại đường dẫn.
  3. Sử dụng VBA để duyệt các ô trong Pivot và chèn ảnh dựa trên đường dẫn.

6.2. Chèn ảnh vào Excel Table (ListObject)

Nếu dữ liệu của bạn ở dạng Table, VBA cần lấy ListObject:

Dim lo As ListObject
Set lo = ws.ListObjects("Table1")
Dim rng As Range
Set rng = lo.ListColumns("Mã SP").DataBodyRange ' Vòng lặp tương tự như ở trên, chỉ khác là dùng lo.DataBodyRange để xác định vị trí.

6.3. Sử dụng Dynamic Array (Excel 365) để tự động tạo ảnh

Bạn có thể viết công thức Lambda kết hợp LET, IMAGE (hàm mới trong Excel 365) để hiển thị ảnh từ URL:

=IMAGE("https://myserver.com/img/" & @MãSP & ".jpg", "Alt text", 100, 100)
  • IMAGE là hàm mới cho phép chèn ảnh từ URL hoặc đường dẫn nội bộ.
  • Khi dữ liệu thay đổi, ảnh tự động cập nhật.
  • Hạn chế: Yêu cầu Excel 365 và kết nối internet nếu dùng URL.

7. Bảo mật và chia sẻ file chứa ảnh

  • Kích hoạt macro: Khi chia sẻ file có VBA, người nhận phải bật macro; nếu không, ảnh sẽ không hiển thị.
  • Lưu dưới định dạng .xlsx vs .xlsm: Để giữ macro, dùng .xlsm. Nếu không cần macro, có thể chuyển sang .xlsx sau khi chèn ảnh (ảnh sẽ được nhúng vào file).
  • Giới hạn kích thước: Microsoft khuyến cáo file Excel không vượt quá 2GB, nhưng thực tế nên giữ dưới 200MB để tránh trễ khi mở.
  • Quyền truy cập: Nếu ảnh được link tới thư mục mạng, người nhận cần có quyền truy cập tới đường dẫn đó.

8. Tổng kết – Khi nào nên chèn ảnh vào ô?

Trường hợpPhương pháp đề xuất
Ít ảnh (dưới 20)Chèn thủ công → Insert Picture → Move and size with cells
Hàng trăm ảnh, tên file trùng với dữ liệuPower Query (binary) hoặc VBA bulk insert
Cần tự động cập nhật khi dữ liệu thay đổiVBA gắn vào Worksheet_Change hoặc hàm IMAGE (Office 365)
Cần chia sẻ file mà không muốn người nhận phải cài ảnhNhúng ảnh (SaveWithDocument:=msoCTrue) hoặc dùng Power Query binary
Muốn ảnh có hiệu ứng đặc biệt (cắt, bo tròn, bóng đổ)Chèn thủ công + Format Picture, hoặc VBA áp dụng PictureFormat

Việc chèn ảnh vào ô không chỉ là một thao tác thẩm mỹ mà còn là cách tối ưu hoá quy trình làm việc, giảm thiểu việc mở nhiều file, và tăng tính trực quan cho người dùng cuối. Bằng cách nắm vững các kỹ thuật từ cơ bản đến nâng cao, bạn có thể:

  • Tiết kiệm thời gian (đặc biệt với hàng nghìn ảnh).
  • Đảm bảo độ ổn định và tính nhất quán của báo cáo.
  • Tạo ra các bảng tính đầy đủ, sạch sẽ, và dễ chia sẻ.

Hy vọng bài viết đã cung cấp đủ kiến thức và công cụ cần thiết để bạn tự tin chèn ảnh vào ô trong Excel một cách chuyên nghiệp. Chúc bạn thành công và đừng quên áp dụng những mẹo “thủ thuật” để nâng tầm các báo cáo của mình!

⚠️
LƯU Ý QUAN TRỌNG: Miễn trừ trách nhiệm: Mặc dù chúng tôi luôn nỗ lực để đảm bảo tính chính xác và cập nhật của thông tin, nhưng các quy định về giáo dục và tuyển sinh có thể thay đổi theo thời gian. BigSchool không chịu trách nhiệm về bất kỳ sai sót nào hoặc kết quả phát sinh từ việc sử dụng thông tin trên trang này. Độc giả nên liên hệ trực tiếp với nhà trường hoặc cơ quan chức năng để có thông tin mới nhất. Ngoài ra, BigSchool tuyệt đối không bán sản phẩm, khóa học hay cung cấp dịch vụ được nhắc đến trong bài.

Viết một bình luận