หน้าเว็บ

วันอังคารที่ 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 ความคิดเห็น:

  1. ไม่ระบุชื่อ7 ตุลาคม 2556 เวลา 11:52

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

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

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

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

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

    ตอบลบ

*** เพื่อความสะดวกในการถามตอบ สามารถสอบถามปัญหา Excel ได้ที่ http://www.snasui.com/ ***

หมายเหตุ: มีเพียงสมาชิกของบล็อกนี้เท่านั้นที่สามารถแสดงความคิดเห็น