Page 1 of 1

สอบถามการกำหนด VBA code ให้ลบเฉพาะรูปภาพ โดยไม่ลบ Combobox (ActiveX control)

Posted: Tue Nov 28, 2017 10:03 pm
by wanchat
เรียน อาจารย์ ครับ

เนื่องจากผมได้สร้างแบบฟอร์มประวัติพนักงาน โดยใช้ combobox (ActiveX control) ในการค้นหาชื่อพนักงาน และให้มีการแทรกรูปพนักงานขึ้นมาด้วย

โดยไฟล์ตัวอย่างเมื่อกดปุ่มคำสั่งแล้วจะทำการ copy รหัสพนักงานไปไว้ใน cell ที่กำหนด และโปรแกรมก็จะทำการแทรกรูปขึ้นมา และเมื่อต้องการค้นหาพนักงานรายถัดไปก็จะพิมพ์รหัสพนักงานที่ cell A2 และกดค้นหา ซึ่งคำสั่งในการค้นหามีการกำหนดให้ลบรูปภาพก่อนหน้าทิ้งด้วย

ซึ่งคำสั่งสามารถลบรูปภาพออกไปได้ และแทรกรูปใหม่ขึ้นมาให้ตรงตามความต้องการ แต่คำสั่งได้ลบ combobox (ActiveX control) ที่มีความจำเป็นต้องใช้ออกไปด้วย จึงอยากขอสอบถามอาจารย์ว่ามีวิธีไหนที่แก้ไข code ให้ลบเฉพาะรูปภาพ แต่ไม่ลบ combobox (ActiveX control) ครับ

ขอบคุณครับ

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
Dim myPict As Picture
Dim PictureLoc As String

If Target.Address = Range("B2").Address Then
ActiveSheet.Pictures.Delete

PictureLoc = "D:\Photo\" & Range("B2") & ".Jpg"

With Range("B2")
Set myPict = ActiveSheet.Pictures.Insert(PictureLoc)
myPict.Height = 150
myPict.Width = 100
End With

End If

End Sub


Re: สอบถามการกำหนด VBA code ให้ลบเฉพาะรูปภาพ โดยไม่ลบ Combobox (ActiveX control)

Posted: Wed Nov 29, 2017 7:35 am
by snasui
:D ตัวอย่าง Code ครับ

Code: Select all

'Other code
Dim s As Shape, myPict As Shape
Dim PictureLoc As String

If Target.Address = Range("B2").Address Then
    For Each s In ActiveSheet.Shapes
        'ActiveSheet.Pictures.Delete
        If VBA.Left(s.Name, 3) = "Pic" Then
            s.Delete
        End If
    Next s
'Other code