Andres có một ảnh trong Clipboard. Anh ấy muốn, đối với ô đã chọn, đặt bức ảnh vào một bình luận. Nếu ô không có nhận xét, thì cần phải tạo một ô. Nếu đã có một bình luận, thì hình ảnh sẽ cần được thêm vào đó. Andres biết điều này sẽ mang tính vĩ mô, nhưng anh ấy không chắc chắn cách làm việc với các nhận xét trong macro để làm những gì anh ấy cần.

Microsoft, trong phiên bản Office 365 mới nhất, hiện gọi commentsnotes. Tuy nhiên, đối với mục đích của mẹo này, tôi sẽ tiếp tục đề cập đến chúng bằng tên comments truyền thống.

Những gì Andres muốn làm không dễ dàng như người ta mong muốn. Vấn đề đầu tiên là dường như không có cách nào trong VBA sử dụng Clipboard làm nguồn của một hình ảnh dành cho một nhận xét. Có thể giải quyết vấn đề này bằng cách thay đổi nguồn thành một hình ảnh trong tệp — nói cách khác, để macro cho phép người dùng chọn tệp hình ảnh sau đó được đặt trong nhận xét.

Sub AddCommentPicture()

Dim PicChoice As Variant

If ActiveCell.Comment Is Nothing Then         ActiveCell.AddComment     End If     PicChoice = Application.GetOpenFilename("JPEGs .jpg,.jpg")



If PicChoice = False Then         MsgBox "No file was selected."

Else         ActiveCell.Comment.Shape.Fill.UserPicture PicChoice         ActiveCell.Comment.Shape.LockAspectRatio = True     End If End Sub

Macro kiểm tra ô hiện hoạt để xem nó có nhận xét hay không. Nếu không, nó sẽ thêm một. Sau đó, nó sẽ hiển thị một hộp thoại Mở chỉ hiển thị các tệp JPG. (Bạn có thể thay đổi tham số của hàm GetOpenFilename để cho biết loại tệp nào sẽ được hiển thị.) Tệp bạn chọn sau đó được gán cho nhận xét.

Lưu ý rằng mã không làm gì để thay đổi kích thước hình ảnh. Nếu muốn, bạn có thể thêm mã cần thiết để thay đổi kích thước. Bạn sẽ muốn thêm mã đó trực tiếp sau dòng khóa tỷ lệ co của hình ảnh, gần cuối macro.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (5489) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.