Page 1 of 1

Show Picture

Posted: Mon Mar 04, 2013 12:31 am
by palmy
เรียนอาจารย์ครับ
ผมลองนำCode การดึงรูปภาพมาแสดงใน Excel ซึ่งสามารถดึงรูปมาแสดงได้
แต่ทีนี้เวลาเราค้นหารูปภาพถัดไป รูป Icon และ Logo ต่างๆที่เราทำใน Sheet นี้ก็หายไปด้วย
ต้องปรับ Code อย่างไรครับถึงจะให้หายไปเฉพาะรูปที่เราดึงมาแสดง

Code: Select all

Sub ShowPicture00()
    Dim r As String
    r = Range("B9").Value
    On Error Resume Next
    ActiveSheet.Shapes(1).Delete
    Range("H2").Select
    ActiveSheet.Pictures.Insert("D:\PicSSK\" & r & ".BMP").Select
    Selection.ShapeRange.ScaleWidth 0.14, _
        msoFalse, msoScaleFromTopLeft
    Selection.ShapeRange.ScaleHeight 0.14, _
        msoFalse, msoScaleFromTopLeft
    Range("B9").Select
End Sub
Sub ShowPicture()
Dim r As String
Dim imgIcon
On Error Resume Next
    ActiveSheet.Shapes(1).Delete
r = Range("B9").Value
With Range("H2")
    Set imgIcon = ActiveSheet.Shapes.AddPicture( _
    Filename:="D:\PicSSK\" & r & ".BMP", LinkToFile:=False, _
    SaveWithDocument:=True, Left:=.Left, Top:=.Top, _
    Width:=120, Height:=130)
End With
Set imgIcon = Nothing
End Sub

Re: Show Picture

Posted: Mon Mar 04, 2013 11:48 am
by joo
:D ลองแนบไฟล์มาดูกันหน่อยครับเพื่อนสมาชิกจะได้ช่วยกันทดสอบ

Re: Show Picture

Posted: Mon Mar 04, 2013 8:30 pm
by palmy
ไฟล์ตัวอย่างครับ
ใน Sheet Search จะใช้โค๊ดดึงรูปภาพมาแสดงจากรหัสพนักงาน
ซึ่งสามารถเรียกรูปได้ปกติ
แต่ ตัวควบคุมฟอร์ม รูปโลโก้ต่างๆ จะหายไปหมดเลยครับ
(จากตัวอย่างที่แนบ รูปโลโก้หายไปแล้ว และตัวควบคุมฟอร์มที่ใช้บันทึกข้อมูลไปอีก Sheet ก็หายไปด้วยครับ)

Re: Show Picture

Posted: Mon Mar 04, 2013 10:40 pm
by snasui
:D ตัวอย่างการปรับ code เป็นตามด้านล่างเพื่อลบ object อื่น ๆ ที่ไม่ได้ชื่อ รูปภาพ 5 ออกไป

Code: Select all

Sub ShowPicture()
    Dim r As String
    Dim p As Object
    Dim imgIcon
    On Error Resume Next
    For Each p In ActiveSheet.Shapes
        If p.Name <> "รูปภาพ 5" Then
            p.Delete
        End If
    Next p
'     ActiveSheet.Shapes(1).Delete
    r = Range("B9").Value
    With Range("H2")
        Set imgIcon = ActiveSheet.Shapes.AddPicture( _
        Filename:="D:\PicSSK\" & r & ".BMP", LinkToFile:=False, _
        SaveWithDocument:=True, Left:=.Left, Top:=.Top, _
        Width:=120, Height:=130)
    End With
    Set imgIcon = Nothing
End Sub

Re: Show Picture

Posted: Wed Mar 06, 2013 12:22 am
by palmy
เรียนถามครับ
จากการใช้งานดึงรูปภาพมาแสดง สิ่งที่เจอปัญหาเพิ่มเติม ซึ่งไม่แน่ใจว่าเป็นเพราะใช้ Code นี้หรือเปล่า
คือการใช้ Data Validation เพื่อจัดทำรายการเลือก (List) ใน Sheet นี้
จะถูกลบหมด เมื่อเช็คไปที่ Validation การตั้งค่าก็ยังเป็นรูปแบบ "รายการ" อยู่เช่นเดิม
แต่ใน Cell นั้น ไม่มีปุ่มลูกศร Dropdown ให้เลือก
ต้องตั้งค่า Validation จากรายการ เป็นค่าใดๆ ก่อน แล้วตั้งใหม่ก็สร้างเป็นรายการได้
แต่ป้อนข้อมูลในการดึงภาพใหม่ List รายการก็หายไปอีก
รบกวนช่วยแนะนำด้วยครับ

Re: Show Picture

Posted: Wed Mar 06, 2013 8:09 am
by tupthai
เปลี่ยนจาก

Code: Select all

For Each p In ActiveSheet.Shapes
        If p.Name <> "รูปภาพ 5" Then
           p.Delete
        End If
 Next p
เป็น

Code: Select all

For Each p In ActiveSheet.DrawingObjects
        If p.Name <> "รูปภาพ 5" Then
            p.Delete
        End If
    Next p
:D ลองทดสอบดูครับ

Re: Show Picture

Posted: Wed Mar 06, 2013 10:04 am
by palmy
ขอบคุณมากครับ

Re: Show Picture

Posted: Sat Feb 15, 2014 6:43 am
by nurak
มีวิธีการปรับลดขนาดความละเอียดของรูป ก่อนนำเข้าใน Excel หรือไม่ครับ หรือมีวิธีอื่นๆช่วยแนะนำด้วยครับ

Re: Show Picture

Posted: Sat Feb 15, 2014 8:35 am
by snasui
:D สามารถใช้ Microsoft Office Picture Manager เข้ามาช่วยได้ครับ

กรณีใช้ Windows 7 คลิก Start > คีย์ m o p m Windows จะ Search โปรแกรมมาให้

Re: Show Picture

Posted: Sat Feb 15, 2014 8:47 am
by nurak
ถ้าเป็น XP วิธีการทำแบบไหนครับ

Re: Show Picture

Posted: Sat Feb 15, 2014 8:53 am
by snasui
:D ลองตามนี้ครับ

Start > All Programs > Microsoft Office > Microsoft Office xxxx Tools

สำหรับ xxxx คือ Version ของ Microsoft Office ที่ใช้อยู่ครับ