Cách chèn ảnh vào ô bằng VBA trong Excel
Visual Basic for Application, viết tắt là VBA, là một dạng Visual Basic 6 được tích hợp vào các chương trình Microsoft Office. Thông qua mã hóa, VBA cho phép bạn tự động hóa các tác vụ trong các chương trình Office, bao gồm cả Excel. Trong một số trường hợp, bạn thậm chí có thể thêm các tính năng mới vào Excel bằng VBA.
Mặc dù bạn cần làm việc với mã để sử dụng VBA, điều đó không có nghĩa là VBA là tất cả các chữ cái và số. Với VBA trong Excel, bạn có thể tạo macro cho phép bạn chèn ảnh vào một ô hoặc một dải ô. Đọc tiếp để tìm hiểu tất cả về nó!
Mục Lục
Cách chèn ảnh vào ô bằng VBA trong Excel
Để tạo macro để chèn ảnh vào ô Excel bằng VBA, bạn thực sự không cần bất kỳ kiến thức Visual Basic nâng cao nào. Tất cả những gì bạn cần làm là bật Công cụ dành cho nhà phát triển, tạo macro và dán mã phù hợp.
Tuy nhiên, nếu bạn quan tâm đến việc học VBA và viết mã của riêng mình vào một ngày nào đó, chúng tôi đã chia nhỏ mã VBA trong phần thứ ba. Tất nhiên, bạn cũng có thể chèn ảnh trong Excel mà không cần sử dụng VBA. Nhưng bài viết này nói về việc thực hiện nó thông qua VBA. Hãy bắt tay vào việc kinh doanh!
1. Bật công cụ dành cho nhà phát triển
Để sử dụng VBA trong Excel, bạn cần bật Công cụ dành cho nhà phát triển trong Excel. Thao tác này sẽ bật tab Nhà phát triển trong ruy-băng, tab này bị tắt theo mặc định.
- Mở Excel.
- Đi đến Tập tin thực đơn.
- Bấm vào Tùy chọn ở cuối màn hình. Thao tác này sẽ mở cửa sổ Tùy chọn Excel.
- Trong Tùy chọn Excel, hãy chuyển đến Tuy Biên ruy-băng chuyển hướng.
- Dưới Các tab chínhkiểm tra Nhà phát triển.
Giờ đây, các công cụ dành cho nhà phát triển, bao gồm quyền truy cập vào VBA, đã được kích hoạt cho bạn. Bạn không cần phải làm điều này mỗi khi bạn muốn sử dụng VBA trong Excel. Các công cụ dành cho nhà phát triển sẽ vẫn được bật cho đến khi bạn tắt chúng.
2. Tạo Macro và chèn mã
Bây giờ là lúc bắt đầu tạo macro. Ngoài ra, bạn cũng có thể tạo một nút bằng VBA cho tác vụ này, nhưng chúng tôi sẽ gắn bó với macro.
- Trong Excel, hãy chuyển đến Nhà phát triển chuyển hướng.
- bên trong Mã số phần, chọn Macro.
- Trong cửa sổ mới, hãy nhập tên cho macro của bạn dưới Tên macro. Chúng tôi sẽ sử dụng insertPhotoMacro.
- Nhấp chuột Tạo ra.
Khi bạn nhấp vào Tạo, cửa sổ VBA sẽ mở ra và hiển thị mã cho macro của bạn. Ngay bây giờ, mã sẽ bao gồm hai dòng: A Phụ để bắt đầu macro và Kết thúc Sub để kết thúc nó.
Hãy thêm một số mã vào macro này. Thêm mã sau vào giữa hai dòng:
Dim photoNameAndPath As Variant
Dim photo As Picture
photoNameAndPath = Application.GetOpenFilename(Title:="Select Photo to Insert")
If photoNameAndPath = False Then Exit Sub
Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath)
With photo
.Left = ActiveSheet.Range("A1").Left
.Top = ActiveSheet.Range("A1").Top
.Width = ActiveSheet.Range("A1").Width
.Height = ActiveSheet.Range("A1").Height
.Placement = 1
End With
Mã cuối cùng của bạn sẽ giống như dưới đây:
Bạn không cần phải lo lắng về việc lưu tiến trình của mình. Mọi thay đổi bạn thực hiện trong VBA sẽ được lưu ngay lập tức.
Bây giờ là lúc để xem mã tại nơi làm việc.
- Đóng cửa sổ VBA.
- Đi đến Nhà phát triển tab trong Excel.
- Lựa chọn Macro từ Mã số tiết diện.
- Đánh dấu macro bạn vừa tạo.
- Nhấp chuột Chạy.
Bây giờ một lời nhắc sẽ mở ra yêu cầu bạn xác định vị trí tệp hình ảnh bạn muốn chèn. Chọn hình ảnh của bạn và sau đó nhấp vào Mở. Bây giờ bạn sẽ thấy ảnh của mình trong ô A1!
Lưu ý rằng hình ảnh được chèn được thu nhỏ để vừa với ô A1. Bạn có thể thay đổi điều này và cũng có thể thay đổi mã để chèn ảnh vào các ô khác hoặc thậm chí một dải ô. Trong phần tiếp theo, chúng ta sẽ chia nhỏ mã và giải thích các tham số tại nơi làm việc.
3. Phá vỡ quy tắc
Để làm cho mã VBA này hoạt động cho bạn theo cách bạn muốn, bạn cần hiểu nó. Sau khi làm như vậy, bạn có thể thay đổi mã để chèn ảnh vào bất kỳ ô nào ở bất kỳ kích thước nào. Chúng ta sẽ xem qua mã từng chút một để dễ hiểu hơn.
Sub insertPhotoMacro()
Dim photoNameAndPath As Variant
Dim photo As Picture
photoNameAndPath = Application.GetOpenFilename(Title:="Select Photo to Insert")
If photoNameAndPath = False Then Exit Sub
Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath)
With photo
.Left = ActiveSheet.Range("A1").Left
.Top = ActiveSheet.Range("A1").Top
.Width = ActiveSheet.Range("A1").Width
.Height = ActiveSheet.Range("A1").Height
.Placement = 1
End With
End Sub
Khi mã bắt đầu, chúng tôi sử dụng Lờ mờ câu lệnh để xác định kiểu của biến. Chúng tôi có hai biến ở đây: photoNameAndPath và ảnh chính nó. Chúng tôi đã xác định trước đây là Khác nhau và cái sau như một ảnh.
Từ đó, biến photoNameAndPath chạy và nó sẽ mở một ứng dụng để lấy vị trí của tệp ảnh. Điều này được thực hiện thông qua Application.GetOpenFileName. Các Tiêu đề tham số là tùy chọn và nội dung trong đó được hiển thị dưới dạng tên cửa sổ.
Sử dụng Nếu photoNameAndPath = False thì thoát Sub, chúng tôi chỉ định rằng nếu một địa chỉ không hợp lệ hoặc trống được cung cấp, quá trình sẽ được kết thúc. Tuy nhiên, nếu một tệp thích hợp được cung cấp, thì Đặt ảnh = ActiveSheet.Pictures.Insert (photoNameAndPath) cho biết rằng ảnh nên được đặt làm biến ảnh mà chúng tôi đã xác định trước đó và nó phải được chèn vào bảng tính đang hoạt động.
Cuối cùng sử dụng Với ảnh và năm dòng sau nó, chúng tôi giải thích kỹ hơn về vị trí của hình ảnh. .Bên trái và .Đứng đầu chỉ ra các vị trí bắt đầu, trong khi .Bề rộng và .Chiều cao chỉ ra các vị trí cuối. Nếu bạn đang tìm cách chèn hình ảnh vào các ô khác hoặc trong một dải ô, thì đây là những dòng bạn nên thay đổi.
.Vị trí cho biết hình ảnh nên được định kích thước bằng các ô hay được chèn ở dạng tự do. Đặt nó thành 1 sẽ kích thước nó với các ô.
Cuối cùng, chúng tôi sử dụng Kết thúc với và sau đó Kết thúc Sub để đóng macro. Lưu ý rằng bạn có thể thay đổi photoNameAndPath và ảnh biến thành bất kỳ tên nào khác mà bạn thích. Chỉ cần nhớ giữ cho các tên nhất quán trong suốt mã.
Hoàn thành nhiều việc hơn trong Excel với VBA
Excel thực sự là một công cụ tuyệt vời để tổ chức và phân tích dữ liệu, nhưng điều đó không có nghĩa là Excel không thích hợp với đồ họa. Mặc dù ảnh và bitmap không phải là phù hợp nhất của Excel, nhưng Excel vẫn hoàn toàn có khả năng xử lý chúng.
Mặc dù bạn có thể chèn ảnh trong Excel bằng cách sử dụng giao diện như trong các ứng dụng Office khác, bạn cũng có thể thực hiện việc đó bằng VBA. Với VBA, bạn có thể tự động hóa tác vụ này và thậm chí ghép nối nó với các tác vụ khác để chạy đồng thời. Khả năng với VBA trong Excel là vô tận.