Thông thường, khi các bạn muốn xóa ảnh trong khi học Excel thì sẽ phải chọn vào nó rồi bấm nút Delete để xóa. Nhưng nếu có hàng trăm hình ảnh muốn xóa cùng lúc thì cách làm này sẽ rất mất thời gian. Các bạn hãy sử dụng cách xóa ảnh hàng loạt được hướng dẫn ngay sau đây.
Để xóa hàng loạt ảnh trong Excel, các bạn có thể dùng VBA để tạo ra một nút lệnh xóa ảnh như trong hình ảnh dưới đây. Khi đó, các bạn chỉ cần bấm nút lệnh là tất cả ảnh sẽ được xóa bỏ nhanh chóng.
Chúng mình đã tạo ra một file mẫu về xóa ảnh hàng loạt trong Excel và gắn vào mục “Tài liệu đính kèm”. Các bạn bấm vào nút này ngay đầu bài viết thì sẽ được chuyển tới vị trí để tải file nhé.
Sau khi tải về và mở file lên thì các bạn sẽ thấy file có 2 sheet như sau:
Chúng ta sẽ thao tác ở sheet ThucHanh các bạn nhé, còn sheet VBA_XoaAnh là kết quả mà chúng mình làm được sau khi dùng VBA để tạo nút lệnh xóa ảnh hàng loạt trong Excel.
Xem thêm: Cách chèn ảnh vào Excel vừa ô tự động cực đơn giản
Để mở cửa sổ VBA trong Excel thì các bạn bấm vào thẻ Developer => chọn công cụ Visual Basic. Hoặc các bạn cũng có thể bấm tổ hợp phím tắt Excel là Alt + F11 thì cũng có thể mở được cửa sổ này. Chúng ta sẽ thực hiện thao tác này khi đang ở trên sheet VBA_XoaAnh các bạn nhé.
Có một số bạn chưa bật thẻ Developer lên thì sẽ không tìm thấy nó. Các bạn chỉ cần vào thẻ File => chọn mục Options => chọn mục Customize Ribbon trong bảng chọn Excel Options => tích vào ô Developer ở bên bảng Main Tabs rồi bấm OK là được. Sau khi thẻ Developer hiện lên rồi thì các bạn có thể thực hiện thao tác đã hướng dẫn phía trên.
Xem thêm: Hướng dẫn sử dụng VBA để tạo menu Excel liên kết nhiều chức năng
Sau khi mở được cửa sổ này lên thì các bạn bấm vào mục Module => bấm vào Module 1 thì sẽ thấy có một đoạn macro VBA hiện ra như sau:
Các bạn hãy bôi đen toàn bộ đoạn Macro này, sau đó bấm Ctrl + C để sao chép. Bây giờ hãy quay lại cửa sổ làm việc của Excel rồi chuyển sang sheet ThucHanh. Bây giờ các bạn lại mở cửa sổ VBA lên => bấm chuột phải vào vùng trống bên dưới dòng VBA_File-thuc-hanh.xlsx => chọn Insert => chọn Module:
Sau khi Module được tạo ra thì các bạn bấm vào Module 1 => nhấp chuột phải và chọn Paste hoặc bấm Ctrl + V để dán đoạn code chúng ta đã sao chép khi nãy vào vùng màu trắng ở bên phải.
Các bạn quay trở lại sheet ThucHanh rồi vào thẻ Insert => chọn mục Shapes để vẽ ra nút lệnh:
Đừng quên chèn thêm văn bản để đặt tên cho nút lệnh rồi căn chỉnh cho cân đối.
Các bạn nhấp chuột phải vào hình khối của nút lệnh rồi chọn mục Assign Macro:
Chọn Macro Name là DeletePic - tên của Macro mà chúng ta đã sử dụng ở phía trên rồi bấm OK.
Bây giờ khi cần xóa ảnh thì các bạn chỉ cần bấm vào nút lệnh Xóa Ảnh là được. Việc xóa ảnh hàng loạt trong Excel bẳng VBA này sẽ không ảnh hưởng đến các hàng, cột hay nội dung khác trong vùng dữ liệu được chọn.
Để hình dung rõ hơn 5 bước này thì các bạn xem video dưới đây:
Xem thêm: Tổng hợp các code VBA Excel thao tác với Workbook chỉ trong nháy mắt
Các bước sử dụng ngay trên file mẫu của chúng mình thì đơn giản nhưng các bạn cần đọc hiểu được đoạn code thì mới có thể tự viết và sử dụng trên file của các bạn. Trước hết, các bạn xem đoạn code mẫu như sau:
Public Sub DeletePic()
Dim xPicRg As Range
Dim xPic As Picture
Dim xRg As Range
Application.ScreenUpdating = False
Set xRg = ActiveSheet.Range("B2:B100")
For Each xPic In ActiveSheet.Pictures
Set xPicRg = ActiveSheet.Range(xPic.TopLeftCell.Address & ":" & xPic.BottomRightCell.Address)
If Not Intersect(xRg, xPicRg) Is Nothing Then xPic.Delete
Next
Application.ScreenUpdating = True
End Sub
Dòng code | Ý nghĩa dòng code |
Public Sub DeletePic() | Đây là tên của Macro, có nghĩa là dùng để xóa ảnh. Các bạn có thể sửa tên DeletePic này thành tên khác tùy thích nhé. |
Dim xPicRg As Range Dim xPic As Picture Dim xRg As Range Application.ScreenUpdating = False | Là các biến được gán vào đoạn code. Đây chỉ là các tên biến, các bạn không cần thay đổi nó cũng được nhé. |
Set xRg = ActiveSheet.Range("B2:B100") | Dùng để thiết lập vùng muốn xóa ảnh, ở đây chúng mình đang tạo chức năng xóa ảnh trên vùng từ ô B2 đến ô B100. Phần vùng dữ liệu cần xóa B2:B100 này các bạn |
For Each xPic In ActiveSheet.Pictures Set xPicRg = ActiveSheet.Range(xPic.TopLeftCell.Address & ":" & xPic.BottomRightCell.Address) If Not Intersect(xRg, xPicRg) Is Nothing Then xPic.Delete Next Application.ScreenUpdating = True | Đây là các câu lệnh dùng để thực hiện thao tác xóa ảnh hàng loạt, các bạn có thể sử dụng ngay không cần thay đổi. |
Nhìn chung, trong cả đoạn code mẫu mà chúng mình cung cấp thì các bạn có thể sử dụng ngay mà chỉ cần thay đổi vùng chứa ảnh muốn xóa.
Xem thêm: Cách sử dụng chức năng Record Macro để tự học VBA cực kỳ đơn giản
Như vậy, chúng mình đã hướng dẫn xong các bước để xóa ảnh hàng loạt trong Excel cho các bạn. Nếu các bạn thầy cách làm này hữu ích thì hãy chia sẻ với mọi người nhé. Qua đây, các bạn cũng có thể thấy được những thao tác phức tạp, mất thời gian trong Excel có thể được xử lý nhanh gọn khi dùng code VBA.
Tài liệu kèm theo bài viết
Khóa học phù hợp với bất kỳ ai đang muốn tìm hiểu lại Excel từ con số 0. Giáo án được Gitiho cùng giảng viên thiết kế phù hợp với công việc thực tế tại doanh nghiệp, bài tập thực hành xuyên suốt khóa kèm đáp án và hướng dẫn giải chi tiết. Tham khảo ngay bên dưới!