Page 1 of 1
ขออนุญาตสอบถาม การระบุตัวเลข เพื่อให้แสดงจำนวนภาพที่เราต้องการ
Posted: Mon Jan 04, 2021 7:13 pm
by GobWeravong
ขออนุญาตสอบถาม การระบุตัวเลข เพื่อให้แสดงจำนวนภาพที่เราต้องการ
เช่น
เราใส่ตัวเลข 1 ในช่อง ฺB1 ก็ให้แสดงภาพออกมา 1 ภาพ
เราใส่ตัวเลข 2 ในช่อง ฺB1 ก็ให้แสดงภาพออกมา 2 ภาพ
เราใส่ตัวเลข 3 ในช่อง ฺB1 ก็ให้แสดงภาพออกมา 3 ภาพ
เป็นต้นครับ และให้เรียงตำแหน่งภาพตามจุดที่เราต้องการได้ครับ
ขอบคุณมากๆครับ ทางผมได้แนบไฟล์มาด้วยครับ ซึ่งไม่มีความรู้ในการเขียน Code มากนักครับ
Re: ขออนุญาตสอบถาม การระบุตัวเลข เพื่อให้แสดงจำนวนภาพที่เราต้องการ
Posted: Mon Jan 04, 2021 7:17 pm
by GobWeravong
ตัวเลขจำนวนที่นำมาใส่ เช่น 1,2,3 อาจจะนำมาจาก Sheet อื่นนะครับ ดังนั้นตัวเลขจะแสดงมาจาก sheet อื่น โดยไม่ต้องกด enter นะครับ
เช่น ช่อง B1 อาจจะไป = ช่อง B1 ใน Sheet2(เพราะทางผมจะดึงข้อมูลจำนวนตัวเลขมาจากแหล่งข้อมูลอื่นมาวางใน Sheet2(B1) และ Sheet1(B1) จะใส่สูตร =Sheet2(B1) ครับ
Re: ขออนุญาตสอบถาม การระบุตัวเลข เพื่อให้แสดงจำนวนภาพที่เราต้องการ
Posted: Tue Jan 05, 2021 9:05 am
by logic
ก่อนที่จะโชว์ภาพใหม่ต้องเขียนโค้ดลบภาพเดิมทุกภาพทิ้งไปก่อน ถ้าไม่ลบมันจะได้ภาพทับถมกันเต็มไปหมดครับ
ช่วยแนบไฟล์ที่ใส่โค้ดเอาไว้เรียบร้อยแล้ว สะดวกกับคนตอบเอาไปทดสอบครับ
Re: ขออนุญาตสอบถาม การระบุตัวเลข เพื่อให้แสดงจำนวนภาพที่เราต้องการ
Posted: Tue Jan 05, 2021 10:07 am
by GobWeravong
เพิ่มเติมไฟล์ครับ ไม่แน่ใจแนบ excel macro ได้หรือไม่ครับ
Re: ขออนุญาตสอบถาม การระบุตัวเลข เพื่อให้แสดงจำนวนภาพที่เราต้องการ
Posted: Tue Jan 05, 2021 10:32 am
by GobWeravong
ขออนุญาต มาแนบไฟล์ใหม่ครับ รอสักครู่ครับ
Re: ขออนุญาตสอบถาม การระบุตัวเลข เพื่อให้แสดงจำนวนภาพที่เราต้องการ
Posted: Tue Jan 05, 2021 10:53 am
by GobWeravong
ตอนนี้ผมปรับไฟล์ใหม่แล้วครับ สามารถดึงภาพมาวางตามตัวเลขได้แล้ว และสามารถลบได้ แต่เหลือกรณีที่ตัวเลขไม่จำกัด เช่นบางคนใส่เลข 20 จะต้องสร้าง 20 ภาพ และต้องลบ 20 ภาพ เป็นต้นครับ
Re: ขออนุญาตสอบถาม การระบุตัวเลข เพื่อให้แสดงจำนวนภาพที่เราต้องการ
Posted: Tue Jan 05, 2021 10:54 am
by GobWeravong
ไฟล์ภาพที่ต้องนำไปวางครับ ซึ่งแต่ละภาพเป็นภาพเดียวกัน สามารถไป save วางใน folder เพื่อสร้าง picture 1,2,3 ตามลำดับได้ครับ
Re: ขออนุญาตสอบถาม การระบุตัวเลข เพื่อให้แสดงจำนวนภาพที่เราต้องการ
Posted: Tue Jan 05, 2021 7:21 pm
by snasui

ตัวอย่างการปรับ Code เพื่อให้ลบ Picture ที่มีอยู่ก่อนแล้ว Insert Picture ตามจำนวนค่าใน B1 ครับ
Code: Select all
Sub InsertPicture()
Dim picSource As String, p As Object
Dim picNum As Integer, i As Integer
Dim c As Integer
picNum = ActiveSheet.Range("b1").Value
picSource = "D:\0_IPRAN\MOP\picture 1.jpg"
For Each p In ActiveSheet.Shapes
If InStr(p.Name, "Picture") Then
p.Delete
End If
Next p
c = 4 'Start cell
For i = 1 To picNum
ActiveSheet.Range("g" & c).Activate
ActiveSheet.Pictures.Insert( _
picSource).Name = "Picture " & i
c = c + 3
Next i
End Sub
Re: ขออนุญาตสอบถาม การระบุตัวเลข เพื่อให้แสดงจำนวนภาพที่เราต้องการ
Posted: Tue Jan 05, 2021 9:45 pm
by GobWeravong
เรียน คุณ snasui และคุณ logic เดี๋ยวผมนำไปทดสอบและจะมาแจ้งผลครับ ขอขอบพระคุณเป็นอย่างสูงครับ
Re: ขออนุญาตสอบถาม การระบุตัวเลข เพื่อให้แสดงจำนวนภาพที่เราต้องการ
Posted: Tue Jan 05, 2021 10:00 pm
by GobWeravong
เรียน คุณ snasui ทดสอบแล้วครับ ได้ผลตามที่ต้องการ สุดยอดมากๆครับ ขอขอบพระคุณเป็นอย่างสูงครับ
(ตัวเลข input เปลี่ยน รูปภาพก็จะเปลี่ยนตามครับ)
Re: ขออนุญาตสอบถาม การระบุตัวเลข เพื่อให้แสดงจำนวนภาพที่เราต้องการ
Posted: Wed Jan 06, 2021 9:10 am
by GobWeravong
เรียน คุณ snasui ผมพบปัญหาว่า หากใน sheet ดังกล่าว มีภาพอื่นๆที่ไม่เกี่ยวข้อง เช่น picture500 มันจะลบออกไปด้วยครับ จะแก้ไขอย่างไรครับ ขอบคุณครับ.
Re: ขออนุญาตสอบถาม การระบุตัวเลข เพื่อให้แสดงจำนวนภาพที่เราต้องการ
Posted: Wed Jan 06, 2021 10:18 am
by logic
ลองเปลี่ยนชื่อภาพที่ไม่เกี่ยวข้อง อย่าใช้คำว่า Picture ในชื่อครับ
Re: ขออนุญาตสอบถาม การระบุตัวเลข เพื่อให้แสดงจำนวนภาพที่เราต้องการ
Posted: Wed Jan 06, 2021 10:50 am
by GobWeravong
เรียน คุณ logic
ok ครับ ได้แล้วครับ
(เมื่อวานผมก็ลองแล้วไม่ได้ เนื่องจาก พอแก้ที่ชื่อรูปเป็น 500 ต้องกด enter ที่ช่องด้วยครับ เมื่อวานผมแก้แล้วไม่กด enter มันจึงเป็นชื่อ picture เหมือนเดิมครับ)
ขอบคุณมากๆครับ
****แล้วแบบนี้เราสามารถสร้างเส้น line ให้มัน แสดงจำนวนและหายไป แบบเดียวกับภาพได้ไหมครับ เช่น Connector: Elbow 68 เป็นต้นครับ
Re: ขออนุญาตสอบถาม การระบุตัวเลข เพื่อให้แสดงจำนวนภาพที่เราต้องการ
Posted: Wed Jan 06, 2021 7:40 pm
by snasui

การเขียน Code ย่อมจะจัดการได้แทบทุกอย่าง ลองเขียนมาเองก่อน ติดแล้วค่อยถามกันต่อครับ
Re: ขออนุญาตสอบถาม การระบุตัวเลข เพื่อให้แสดงจำนวนภาพที่เราต้องการ
Posted: Thu Jan 07, 2021 10:07 am
by GobWeravong
เรียน คุณ snasui ครับ ตอนนี้ผมได้ลองทำไฟล์สร้าง line มาได้แล้วครับ แต่มีปัญหาว่า เวลาจะลบด้วย code หรือสร้างปุ่ม จะมีปัญหาตรงที่เส้น line ชื่อจะเปลี่ยนตลอดเวลาครับ ทำให้ผมไม่สามารถทำปุ่มไปลบเส้นได้ครับ และจากไฟล์แนบคือต้องการให้โปรแกรม excel นี้หากใส่ตัวเลข 5 โปรแกรมexcel นี้จะสร้างภาพอุปกรณ์ออกมา 5 ตัว และ สร้างเส้นคู่กันออกมา 5เส้น(ของจริงจำนวนไม่จำกัดครับ) หากใส่เลข 1 ก็จะสร้างอุปกรณ์มา 1 ตัว และจะสร้างเส้นคู่กัน คือ Line1 และ lineRedun1 ออกมาครับ ตอนนี้ผมสร้างเส้นออกมาโดยกดปุ่มตามไฟล์แนบครับ ส่วนการลบจะลบด้วย manual แล้วค่อยกดสร้างเส้นขึ้นมาใหม่ครับ ขอบคุณมากๆครับ
Re: ขออนุญาตสอบถาม การระบุตัวเลข เพื่อให้แสดงจำนวนภาพที่เราต้องการ
Posted: Fri Jan 08, 2021 9:13 am
by GobWeravong
ตอนนี้ผมได้ code นี้มาจาก net ต่างประเทศ ซึ่งสามารถนำมาใช้ได้ ซึ่งจะลบเส้นทั้งหมดในภาพครับ จะลองดัดแปลงดูครับ
Set myDocument = Worksheets(1)
With myDocument.Shapes
For i = .Count To 1 Step -1
With .Item(i)
If .Connector Then .Delete
End With
Next
End With
Re: ขออนุญาตสอบถาม การระบุตัวเลข เพื่อให้แสดงจำนวนภาพที่เราต้องการ
Posted: Fri Jan 08, 2021 10:25 am
by GobWeravong
ตอนนี้ผมลองทำดู ได้แล้วครับ แต่ใช้ code และชุดคำสั่งเยอะไปครับ รายละเอียดตามไฟล์ครับ ขอบคุณมากๆครับ
Re: ขออนุญาตสอบถาม การระบุตัวเลข เพื่อให้แสดงจำนวนภาพที่เราต้องการ
Posted: Sun Jan 10, 2021 12:55 pm
by snasui

การสร้างเส้นเชื่อมโยง (Connector) ในแบบที่ลบแล้วสร้างใหม่จะยุ่งยากในการจัดการเพราะจะต้องทราบตำแหน่งในการสร้างแต่ละครั้ง
วิธีการที่จะทำให้ง่ายขึ้นคือ สร้าง Object ทั้งภาพและเส้นเชื่อมโยงเอาไว้ให้พอกับจำนวนที่ต้องการแต่ทำการซ่อนเอาไว้ด้วย Code ในการสร้างเอาไว้ก่อนเราสามารถที่จะจัดการชื่อของ Object แต่ละอย่างได้ สามารถที่จะกำหนดให้มีตัวเลขประกอบเพื่อรันลำดับและง่ายต่อการใช้ Code มาจัดการได้
เมื่อผู้ใช้คีย์ค่าจำนวนที่จะใช้ค่อยใช้ Code มาช่วยในการแสดงผลภาพและเส้นเชื่อมโยงตามชื่อที่ให้ลำดับเอาไว้
จะเริ่มด้วยการซ่อนทุก Object ทุกครั้งที่จะให้แสดง แล้วค่อยยกเลิกการซ่อน Object ตามจำนวนที่ผู้ใช้เลือก เช่นนี้เป็นต้นครับ