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

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

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

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

RetreivePic
ภาพ 1 การดึงรูปจาก Folder มาแสดง

ซึ่งสามารถใช้ 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("F" & .Rows.Count) _
            .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

Revised: January 29, 2017 at 20:01

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top