หน้าเว็บ

วันอังคารที่ 31 พฤษภาคม พ.ศ. 2554

การดึงรูปจาก Folder ที่ต้องการมาแสดงใน Excel

สำหรับการดึงรูปจาก Folder ที่เก็บในเครื่องมาแสดงใน Excel โดยปรับภาพให้พอดีกับขนาดเซลล์ด้วยเสมอนั้นจำเป็นต้องใช้ VBA มาช่วยเพื่อการกระทำดังกล่าวครับ ซึ่งการดึงภาพจาก Folder ในเครื่องมาแสดงแทนการเก็บภาพไว้ในตาราง Excel แล้วค่อยใช้สูตรดึงภาพมาแสดงนั้นจะช่วยให้ลดขนาดไฟล์ได้มาก เนื่องจากไฟล์ภาพมักจะมีขนาดใหญ่ หากเก็บภาพไว้ในตาราง Excel มาก ๆ จะทำให้ไฟล์มีขนาดใหญ่ขึ้นมาก นอกจากนี้จะให้ไฟล์ Excel ทำงานช้าลงมากตามไปด้วย

ตามภาพด้านล่างจะเป็นการดึงภาพที่เก็บไว้ใน Drive D: มาแสดงตามชื่อที่ไห้ไว้ล่วงหน้า ซึ่งสามารถที่จะระบุชื่อภาพไว้ในเซลล์ตั้งแต่ F4 เป็นต้นไปตามความต้องการ เมื่อคลิกปุ่ม Show Picture ภาพก็จะมาแสดงในคอลัมน์ G ตรงกับชื่อที่ให้ไว้

ภาพแสดงการดึงรูปจาก Folder ที่ต้องการมาแสดงใน Excel

RetreivePic

 ซึ่งสามารถใช้ Code VBA ตามด้านล่าง

Sub ShowPicture()
Dim r As Range, ra As Range
Dim imgIcon As Object
Dim obj As Object
On Error Resume Next
With Worksheets("Sheet1")
Set ra = .Range("G4", .Range("F65536").End(xlUp).Offset(0, 1))
End With
For Each obj In ActiveSheet.Shapes
If Left(obj.Name, 4) = "Pict" Then
obj.Delete
End If
Next obj
For Each r In ra
Set imgIcon = ActiveSheet.Shapes.AddPicture( _
Filename:="D:\" & r.Offset(0, -1).Value & ".jpg", LinkToFile:=False, _
SaveWithDocument:=True, Left:=r.Left, Top:=r.Top, _
Width:=r.Width, Height:=r.Height)
Next r
End Sub



5 ความคิดเห็น:

ไม่ระบุชื่อ กล่าวว่า...

เนื่องจากไม่มีความรู้ VBA เลย แต่อยากได้สูตรการดึงรูปจากโฟลเดอร์อย่างมาก

หากเป็นได้ขอความอนุเคราะส๖ชูตรที่เขียนในไฟล์ Excel แล้วนำมาแก้ไขชื่อโฟล์เดอร์ที่ต้องการเรียกรูปได้ไหม ส่งที่ HR@deestone.con
ขอขอบพระคุณอย่างสูง

snasui กล่าวว่า...

:D ไม่มีสูตรใดสามารถดึงรูปมาแสดงได้เหมือนตัวอย่างในบทความนี้ครับ

Unknown กล่าวว่า...

ขอบคุณครับ

Unknown กล่าวว่า...

ถ้าผมต้องการเปลี่ยนจาก.left:=r.left,top:=r.top เป็นการกำหนดค่า.x y ต้องเปลี่ยนโค้ดเป็นอย่างไรครับ

snasui กล่าวว่า...

กรณีสอบถามปัญหาเชิญที่ http://www.snasui.com ครับ