- Tham gia
- 5/6/08
- Bài viết
- 30,703
- Được thích
- 53,963
Xưa nay người ta thường chèn hình vào bảng tính bằng 1 thủ tục nào đó (Sub...). Vậy các bạn có nghĩ rằng có thể chèn hình bằng hàm tự tạo không? Tức là ta gõ hàm vào cell, lập tức hình được chèn vào ngay cell ấy!
Ví dụ ta gõ thế này: =CommPic("D:\Pic\Hinh 1.jpg",C5) thì lập tức Hinh 1.jpg được chèn vừa vặn vào cell C5.
Hàm CommPic phiên bản mới nhất với nhiều tùy chọn:
Khả năng của hàm:
- Nếu đường dẫn không tồn tại, sẽ xóa Comment.
- Cho phép chèn hình có trong ổ đĩa máy tính hoặc hình trên Web.
- Tự động thay đổi size hình và dịch chuyển theo cell (khi cell thay đổi kích thước, chỉ cần bấm F9 để cập nhật).
- Cho phép thu nhỏ, phóng to hình tùy ý. Ví dụ =CommPic(A1, , 80%, 80%) có nghĩa là thu nhỏ chiều ngang và chiều dọc 80% so với cell (mặc định là 100%)
Những khả năng mở rộng chỉ là dạng Optional, nếu anh không thích dùng vẫn có thể bỏ qua không cần khai báo. Ví dụ anh chỉ muốn chèn hình vào cell B1, với đương dẫn nằm ở A1, vậy chỉ cần gõ vào B1 thế này là đủ: =CommPic(A1) mà không cần quan tâm những đối số phía sau.
Xem thử hình đã được Add vào có ngoạn mục không?
Hy vọng tạo sự dễ dàng cho các bạn, những ai quan tâm đến việc chèn hình ảnh vào bảng tính.
Một số bài viết có liên quan:
1/ Tặng các bạn file "QUAY SỐ TRÚNG THƯỞNG"
2/ Tặng tiện ích CALENDAR (Excel 2007 trở về sau)
3/ Tặng phần mềm in mã vạch
4/ Làm nhãn vở học sinh trên Excel
5/ Tặng hàm Calculate tính giá trị theo nội dung diễn giải
6/ Dùng Macro 4 để lấy dữ liệu từ 1 file đang đóng
7/ Gọi một Private Sub
8/ Cách chạy macro trong sheet bị protect
9/ Viết hàm VBA như thế nào là tốt
10/ Hàm Sum nhiều tính năng
Ví dụ ta gõ thế này: =CommPic("D:\Pic\Hinh 1.jpg",C5) thì lập tức Hinh 1.jpg được chèn vừa vặn vào cell C5.
Hàm CommPic phiên bản mới nhất với nhiều tùy chọn:
Mã:
Function CommPic(ByVal PicPath As String, Optional ByVal PicCel As Range, _
Optional ByVal ScaleWidth As Single = 1, _
Optional ByVal ScaleHeight As Single = 1) As String
Dim mRng As Range, cmt As Comment, fso As Object, bChk As Boolean
On Error Resume Next
Application.Volatile
Set fso = CreateObject("Scripting.FileSystemObject")
If PicCel Is Nothing Then Set PicCel = Application.ThisCell
PicCel(1, 1).Comment.Delete
If Left(PicPath, 7) = "http://" Then
bChk = URLExists(PicPath)
Else
bChk = fso.FileExists(PicPath)
If bChk = False Then
PicPath = ThisWorkbook.Path & "\" & PicPath
bChk = fso.FileExists(PicPath)
End If
End If
If bChk Then
If PicCel(1, 1).Comment Is Nothing Then PicCel(1, 1).AddComment
PicCel(1, 1).Comment.Text vbLf
Set mRng = PicCel(1, 1).MergeArea
If mRng Is Nothing Then Set mRng = PicCel(1, 1)
Set cmt = mRng(1, 1).Comment
cmt.Visible = True
With cmt.Shape
.LockAspectRatio = msoFalse
.Placement = xlMoveAndSize
.Shadow.Visible = msoFalse
.Line.ForeColor.RGB = PicCel.Interior.Color
.AutoShapeType = msoShapeRectangle
.Left = mRng.Left: .Top = mRng.Top
.Width = mRng.Width: .Height = mRng.Height
.ScaleWidth ScaleWidth, msoFalse, msoScaleFromMiddle
.ScaleHeight ScaleHeight, msoFalse, msoScaleFromMiddle
.Fill.UserPicture PicPath
End With
End If
End Function
Private Function URLExists(ByVal URL As String) As Boolean
Application.Volatile
On Error Resume Next
If Left(UCase(URL), 7) <> "HTTP://" Then URL = "http://" & URL
With CreateObject("MSXML2.XMLHTTP")
.Open "HEAD", URL, False: .send
URLExists = .Status = 200
End With
End Function
Khả năng của hàm:
- Nếu đường dẫn không tồn tại, sẽ xóa Comment.
- Cho phép chèn hình có trong ổ đĩa máy tính hoặc hình trên Web.
- Tự động thay đổi size hình và dịch chuyển theo cell (khi cell thay đổi kích thước, chỉ cần bấm F9 để cập nhật).
- Cho phép thu nhỏ, phóng to hình tùy ý. Ví dụ =CommPic(A1, , 80%, 80%) có nghĩa là thu nhỏ chiều ngang và chiều dọc 80% so với cell (mặc định là 100%)
Những khả năng mở rộng chỉ là dạng Optional, nếu anh không thích dùng vẫn có thể bỏ qua không cần khai báo. Ví dụ anh chỉ muốn chèn hình vào cell B1, với đương dẫn nằm ở A1, vậy chỉ cần gõ vào B1 thế này là đủ: =CommPic(A1) mà không cần quan tâm những đối số phía sau.
Xem thử hình đã được Add vào có ngoạn mục không?
Hy vọng tạo sự dễ dàng cho các bạn, những ai quan tâm đến việc chèn hình ảnh vào bảng tính.
Một số bài viết có liên quan:
1/ Tặng các bạn file "QUAY SỐ TRÚNG THƯỞNG"
2/ Tặng tiện ích CALENDAR (Excel 2007 trở về sau)
3/ Tặng phần mềm in mã vạch
4/ Làm nhãn vở học sinh trên Excel
5/ Tặng hàm Calculate tính giá trị theo nội dung diễn giải
6/ Dùng Macro 4 để lấy dữ liệu từ 1 file đang đóng
7/ Gọi một Private Sub
8/ Cách chạy macro trong sheet bị protect
9/ Viết hàm VBA như thế nào là tốt
10/ Hàm Sum nhiều tính năng
File đính kèm
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote
0