:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

รบกวนอาจารย์ ช่วยเรื่อง Code VB ตรวจสอบการลบและแทรกรูปภาพด้ว

Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่

Post a reply


This question is a means of preventing automated form submissions by spambots.
Smilies
:D :thup: :cp: :flw: :rz: :sg: :tt: :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :ard: :arl: :aru: :| :mrgreen: :geek: :ugeek:

BBCode is ON
[img] is ON
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: รบกวนอาจารย์ ช่วยเรื่อง Code VB ตรวจสอบการลบและแทรกรูปภาพด้ว

Re: รบกวนอาจารย์ ช่วยเรื่อง Code VB ตรวจสอบการลบและแทรกรูปภาพด้ว

#24

by tigerwit » Mon Oct 09, 2017 3:57 pm

ได้แล้วครับ
ขอบคุณครับ

Re: รบกวนอาจารย์ ช่วยเรื่อง Code VB ตรวจสอบการลบและแทรกรูปภาพด้ว

#23

by snasui » Sat Oct 07, 2017 7:03 am

:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub InsPic2()
    Const strPath As String = "C:\"
    Dim Imge, logopic As Object
    Dim ImgFileFormat As String
    Dim i As Integer
    Dim obj As Object

    For Each obj In ActiveSheet.Shapes
        If obj.Name = "picture 46" Then
            i = 1
        End If
    Next obj
    
    If i = 1 Then
        ActiveSheet.Unprotect Password:="1"
        Range("B1").Select
        ActiveSheet.Shapes("picture 46").Delete
        Range("B1").Select
    End If
    
    Call locksheet2
    Sheets("Logo2").Select
    ChDrive strPath
    ImgFileFormat = "Image Files (*.jpg*),*.jpg*"
    ImgFileFormat = ImgFileFormat & ",PNG Files (*.png*),*.png*"
    ImgFileFormat = ImgFileFormat & ",BMP Files (*.bmp*),*.bmp*"
    Imge = Application.GetOpenFilename(ImgFileFormat)
    
    If Imge <> "False" Then
        ActiveSheet.Unprotect Password:="1"
        Set logopic = ActiveSheet.Shapes.AddPicture(Filename:=Imge, linktofile:=msoFalse, savewithdocument:=msoCTrue, _
        Left:=Range("b1").Left, Top:=Range("b1").Top, Width:=-1, Height:=-1)
        With logopic
            .Name = "picture 46"
            .LockAspectRatio = msoTrue
            .Height = 117.75
            .Width = 66#
            .Rotation = 0#
            .IncrementLeft 3.75
            .IncrementTop 1.25
        End With
        Call locksheet2
    End If
End Sub

Re: รบกวนอาจารย์ ช่วยเรื่อง Code VB ตรวจสอบการลบและแทรกรูปภาพด้ว

#22

by tigerwit » Sat Oct 07, 2017 2:09 am

ไฟล์เดิมครับแทรกไฟล์รูปภาพแล้วอยู่ในเครื่องที่บ้านเห็นรูป
พอ copy ใส่แฟลชไดร์ฟไปทำงานกับเครื่องที่โรงเรียนไม่เห็นรูปครับ
Attachments
inspic.xlsm
(33.71 KiB) Downloaded 4 times

Re: รบกวนอาจารย์ ช่วยเรื่อง Code VB ตรวจสอบการลบและแทรกรูปภาพด้ว

#21

by snasui » Fri Oct 06, 2017 9:22 pm

:D ลองแนบไฟล์นั้นมาดูกันโดยเปลี่ยนข้อความสำคัญให้เป็นข้อความอื่นและตัดมาเฉพาะที่เกี่ยวกับปัญหานี้เท่านั้นครับ

Re: รบกวนอาจารย์ ช่วยเรื่อง Code VB ตรวจสอบการลบและแทรกรูปภาพด้ว

#20

by tigerwit » Fri Oct 06, 2017 11:37 am

สวัสดีครับ
เห็นทุกไฟล์แล้วครับ
ขอบคุณครับ
พอดีมีปัญหาจากคำถามนี้ครับ
หลังจากแทรกรูปแล้ว เราใช้งานในเครื่อง
เห็นรูปที่แทรกเป็นปกติ
แต่พอเรา copy ไฟล์ excel นี้ ไปใช้กับเครื่องอื่น
กลายเป็นว่ารูปที่แทรกนั้นกลับไม่เห็น
ดังภาพประกอบ
pic.jpg
pic.jpg (43.18 KiB) Viewed 74 times
จะแก้ไขอย่างไงครับให้เห็นรูปที่แทรก โดยที่ไม่ต้อง copyไฟล์รูปภาพตามไปที่เครื่องอื่น

Re: รบกวนอาจารย์ ช่วยเรื่อง Code VB ตรวจสอบการลบและแทรกรูปภาพด้ว

#19

by snasui » Thu Jun 08, 2017 5:29 pm

:D ในเครื่องผมเห็นทั้งสามนามสกุลไฟล์ตามภาพครับ
Attachments
FileFilter
FileFilter
FileFilter.png (83.52 KiB) Viewed 88 times

Re: รบกวนอาจารย์ ช่วยเรื่อง Code VB ตรวจสอบการลบและแทรกรูปภาพด้ว

#18

by tigerwit » Thu Jun 08, 2017 3:46 pm

สวัสดีครับ
ลองแก้ไขแล้วตามคำแนะนำ
ยังคงเห็นเฉพาะไฟล์ .jpg เท่านั้นครับ
Attachments
PP5.1.xlsm
(33.71 KiB) Downloaded 10 times

Re: รบกวนอาจารย์ ช่วยเรื่อง Code VB ตรวจสอบการลบและแทรกรูปภาพด้ว

#17

by snasui » Thu Jun 08, 2017 6:44 am

:D ตัวอย่าง Code ครับ

Code: Select all

'...other code...
        ImgFileFormat = "Image Files (*.jpg*),*.jpg*"
        ImgFileFormat = ImgFileFormat & ",PNG Files (*.png*),*.png*"
        ImgFileFormat = ImgFileFormat & ",BMP Files (*.bmp*),*.bmp*"
'...other code...

Re: รบกวนอาจารย์ ช่วยเรื่อง Code VB ตรวจสอบการลบและแทรกรูปภาพด้ว

#16

by tigerwit » Wed Jun 07, 2017 2:00 pm

Code: Select all

Sub InsPic2()
    'Code From..
    'http://www.snasui.com/viewtopic.php?f=3&t=1768
    'http://www.mrexcel.com/archive/General/4711.html
    'http://www.ozgrid.com/forum/showthread.php?t=24068
   
    Const strPath As String = "D:\" '<== Change to your path
    Dim Imge
    Dim ImgFileFormat As String
    Dim i As Integer
    Dim obj As Object
    For Each obj In ActiveSheet.Shapes
        If obj.Name = "picture 46" Then
            i = 1
        End If
    Next obj
    If i = 1 Then
'        ChDrive strPath
        ChDir strPath
        ImgFileFormat = "Image Files (*.jpg),*.jpg"
        Imge = Application.GetOpenFilename(ImgFileFormat)
        If Imge <> "False" Then
            ActiveSheet.Unprotect Password = "1"
            ActiveSheet.Shapes("picture 46").Delete
            ActiveSheet.Pictures.Insert(Imge).Name = "picture 46"
            ActiveSheet.Protect Password = "1"
        End If
    End If
End Sub
จากโค๊ดนี้ครับ

ถ้าต้องการให้สามารถเลือกไฟล์รูปภาพอื่นเช่น bmp png tif
จะต้องแก้ไขโค๊ดอย่างไรครับ

Re: รบกวนอาจารย์ ช่วยเรื่อง Code VB ตรวจสอบการลบและแทรกรูปภา

#15

by snasui » Sun Oct 30, 2011 8:53 pm

tigerwit wrote:ผมเคยลองแล้ว แต่ไม่ผ่าน เพราะเป็นตัวเล็็็กทั้งหมด
เีรียนถามว่า ทำไมถึงเป็นตัวใหญ่ครับ ในเมื่อ
ActiveSheet.Protect True, True, True, True, True
มันก็เป็นตัวเล็ก
อาจารย์พออธิบายได้ไหมครับ
:D เนื่องจาก True และ False เป็น Keyword ของ โปรแกรม ดังนั้นการนำไปกำหนดค่า Password ในลักษณะตรงตัวเช่นนั้นจึงไม่สามารถทำได้ โปรแกรมจึงแปลงให้เป็น TRUE

สำหรับ Keyword ทั้งหมดดูได้จากที่นี่ครับ :arrow: VBA Keyword

ส่วน Code ที่ถามมา ลองปรับเป็นตามด้านล่างครับ

Code: Select all

Sub InsPic2()
    'Code From..
    'http://www.snasui.com/viewtopic.php?f=3&t=1768
    'http://www.mrexcel.com/archive/General/4711.html
    'http://www.ozgrid.com/forum/showthread.php?t=24068
    
    Const strPath As String = "D:\" '<== Change to your path
    Dim Imge
    Dim ImgFileFormat As String
    Dim i As Integer
    Dim obj As Object
    For Each obj In ActiveSheet.Shapes
        If obj.Name = "picture 46" Then
            i = 1
        End If
    Next obj
    If i = 1 Then
'        ChDrive strPath
        ChDir strPath
        ImgFileFormat = "Image Files (*.jpg),*.jpg"
        Imge = Application.GetOpenFilename(ImgFileFormat)
        If Imge <> "False" Then
            ActiveSheet.Unprotect Password = "1"
            ActiveSheet.Shapes("picture 46").Delete
            ActiveSheet.Pictures.Insert(Imge).Name = "picture 46"
            ActiveSheet.Protect Password = "1"
        End If
    End If
End Sub

Re: รบกวนอาจารย์ ช่วยเรื่อง Code VB ตรวจสอบการลบและแทรกรูปภา

#14

by tigerwit » Sun Oct 30, 2011 3:21 pm

:rz: ผมเคยลองแล้ว แต่ไม่ผ่าน เพราะเป็นตัวเล็กทั้งหมด
เีรียนถามว่า ทำไมถึงเป็นตัวใหญ่ครับ ในเมื่อ
ActiveSheet.Protect True, True, True, True, True
มันก็เป็นตัวเล็ก
อาจารย์พออธิบายได้ไหมครับ

และขอนำแนะนำต่อเลยครับ
มีปัญหา ติดตรงที่เมื่อยกเลิกไม่แทรกรูปแล้ว sheet ไม่ lock ให้
รายละเอียดต่าง ๆ อยู่ในไฟล์ครับ
Attachments
PP5.rar
(54.58 KiB) Downloaded 5 times

Re: รบกวนอาจารย์ ช่วยเรื่อง Code VB ตรวจสอบการลบและแทรกรูปภา

#13

by snasui » Sun Oct 30, 2011 2:13 pm

:lol: Password คือ TRUE ครับ

Re: รบกวนอาจารย์ ช่วยเรื่อง Code VB ตรวจสอบการลบและแทรกรูปภา

#12

by tigerwit » Sun Oct 30, 2011 1:53 pm

ขอบคุณครับ..
อาจารย์ เราจะรู้ได้อย่างไรว่า รหัสปลดการป้อง sheet จากโค๊ดนี้คืออะไร ครับ

Re: รบกวนอาจารย์ ช่วยเรื่อง Code VB ตรวจสอบการลบและแทรกรูปภา

#11

by snasui » Sun Oct 30, 2011 11:00 am

:D บรรทัดสำหรับการ Protect ตามด้านล่างครับ

Code: Select all

ActiveSheet.Protect True, True, True, True, True

Re: รบกวนอาจารย์ ช่วยเรื่อง Code VB ตรวจสอบการลบและแทรกรูปภา

#10

by tigerwit » Sun Oct 30, 2011 10:33 am

พอดีไปเจอโค๊ดจากเว็บ http://www.mrexcel.com/archive/General/4711.html ซึ่งตรงกับความต้องการ
แต่มีปัญหานิดหน่อย...
จากไฟล์ที่แนบมา หลังจากแทรกรูปภาพแล้ว มันมีการสั่งให้ล็อค Sheet ผมพยายามดูแต่ละบรรทัดแล้ว ไม่รู้ว่าบรรทัดไหนสั่งให้ล็อค sheet
อาจารย์ช่วยดูหน่อยครับ
Attachments
inspic.xls
(24.5 KiB) Downloaded 14 times

Re: รบกวนอาจารย์ ช่วยเรื่อง Code VB ตรวจสอบการลบและแทรกรูปภา

#9

by tigerwit » Sun Oct 30, 2011 9:35 am

เรียนถามต่อว่า...
จากโค๊ดนี้
Sub ChPic()
Dim i As Integer
Dim obj As Object
For Each obj In ActiveSheet.Shapes
If obj.Name = "Picture 46" Then
i = 1
End If
Next obj
If i = 1 Then
Ans = MsgBox("มีรูปอยู่แล้วต้องการลบหรือไม่", vbYesNo)
End If
If Ans = vbYes Then
ActiveSheet.Shapes("picture 46").Delete
End If
ActiveSheet.Pictures.Insert("C:\PP51\pic\pd.jpg").Name = "picture 46"
ActiveSheet.Shapes("picture 46").Select
Range("B1").Select
End Sub
หากเราต้องการให้ผู้ใช้โปรแกรมสามารถเลือกไฟล์รูปภาพเป็นชื่ออื่น จากโฟลเดอร์ C:\PP51\pic เพื่อแทรกรูป แทนที่จะกำหนดให้ต้องเป็นชื่อ pd.jpg อย่างเดียว

จะต้องปรับโค๊ดอย่างไรครับ

Re: รบกวนอาจารย์ ช่วยเรื่อง Code VB ตรวจสอบการลบและแทรกรูปภา

#8

by tigerwit » Sat Oct 29, 2011 4:23 pm

ปรับแก้นิดหน่อย ได้แล้วครับ
ขอบพระคุณมากครับ

Re: รบกวนอาจารย์ ช่วยเรื่อง Code VB ตรวจสอบการลบและแทรกรูปภา

#7

by snasui » Sat Oct 29, 2011 9:39 am

:D ลองปรับเป็น Loop เพื่อหาชื่อ Picture 46 ตามด้านล่างดูครับ

Code: Select all

Sub delpic()
' Macro001 Macro
' แมโครถูกบันทึก ณ วันที่ 25/10/2011 โดย หมู ภูดินแดง
    Dim i As Integer
    Dim obj As Object
    For Each obj In ActiveSheet.Shapes
        If obj.Name = "Picture 46" Then
            i = 1
        End If
    Next obj
    If i = 0 Then
        MsgBox "ไม่มีรูปให้ลบ"
        Exit Sub
    End If
    If MsgBox("คุณต้องการลบตราโรงเรียน?", 36, "ยืนยันการลบ") = 6 Then
        ActiveSheet.Shapes("Picture 46").Select
        Selection.Delete
'         Cancel = True
    End If
End Sub
Sub ChPic()
' Macro001 Macro
' แมโครถูกบันทึก ณ วันที่ 25/10/2011 โดย หมู ภูดินแดง
    Dim i As Integer
    Dim obj As Object
    For Each obj In ActiveSheet.Shapes
        If obj.Name = "Picture 46" Then
            i = 1
        End If
    Next obj
    If i = 1 Then
        Ans = MsgBox("มีรูปอยู่แล้วต้องการลบหรือไม่", vbYesNo)
    End If
    If Ans = vbYes Then
        ActiveSheet.Shapes("picture 46").Delete
    End If
    ActiveSheet.Pictures.Insert("C:\PP51\pic\pd.jpg").Name = "picture 46"
    ActiveSheet.Shapes("picture 46").Select
    Range("B1").Select
End Sub

Re: รบกวนอาจารย์ ช่วยเรื่อง Code VB ตรวจสอบการลบและแทรกรูปภา

#5

by tigerwit » Sat Oct 29, 2011 8:51 am

Err ครับ
ตอนที่มีรูปตราโรงเรียน โปรแกรมรันได้
พอลบรูปไปแล้ว
และคลิกที่ปุ่ม โปรแกรมมีปัญหาครับ
Attachments
err.png
err.png (49.85 KiB) Viewed 205 times

Top