วันจันทร์ที่ 11 สิงหาคม พ.ศ. 2557

Excel tips ซ่อน แสดง พิมพ์ข้อความ จัดรูปแบบ บน shapes

Excel tips ซ่อน แสดง พิมพ์ข้อความ จัดรูปแบบ บน shapes Excel tips วันนี้เป็นเรื่องของ shapes ซึ่งเราสามารถแทรกเข้ามาใน Sheet ของ Excel ... thumbnail 1 summary

Excel tips ซ่อน แสดง พิมพ์ข้อความ จัดรูปแบบ บน shapes

Excel tips วันนี้เป็นเรื่องของ shapes ซึ่งเราสามารถแทรกเข้ามาใน Sheet ของ Excel โดยเข้าไปตรงเมนู Insert แล้วเลือกแทรกเข้ามา ซึ่งก็มีให้เลือกใช้หลายแบบด้วยกัน เช่น เส้นตรง (line), เส้นโค้ง (Curve), สี่เหลี่ยม (Rectangle), วงกลม (Oval) โดยในตัวอย่างนี้เราจะแสดงการใช้ vba ในการสั่งให้ Shapes ที่เราเพิ่มเข้ามาหายตัว (Disappear) หรือปรากฏตัว (appear) โดยใช้ พรอพเพอร์ตี้ Visible นอกจากนั้น เรายังสั่งงานให้มันพิมพ์ข้อความเข้าไปข้างใน และสั่งให้มันจัดรูปแบบข้อความให้อยู่ตรงกลางด้วย โดย Shape ที่เราจะเพิ่มเข้ามาสำหรับตัวอย่างนี้คือ Shape แบบ Oval โดยให้เราทำตามตัวอย่างด้านล่างนี้ ต้องขอบอกไว้ว่าตัวอย่างนี้ไม่ใช่ ขั้น Advance อะไร เป็นเพียงแค่ Basic เท่านั้น เหมาะสำหรับมือใหม่ที่หัดเล่น vba ในครั้งแรกๆ และ กลางๆ

ขั้นตอนการทำงาน


1. เปิด Excel ขึ้นมา

(Open Excel)

2. ออกแบบโปรแกรมโดยให้ พิมพ์ข้อความที่ C1 ว่า “พิมพ์ข้อความ”
(Type “type text” on c1 cell)

3. พิมพ์ข้อความที่ เซลล์ D1 ว่า “แสดง Shape”
(Type “Show Shape” on D1)

4. พิมพ์ข้อความที่ เซลล์ E1 ว่า “ซ่อน Shape”
(Type “ Hide Shape” On E1)

5. ใส่สีพื้นหลัง สีตัวอักษร ตรง C1, D1, E1 ตามที่ต้องการ
(Fill background color, Font Color at C1, D1, E1 as you want)

6. กด Alt+F11 เพื่อเข้าสู่ หน้าจอ VBA

7. ใส่ซอร์สโค้ดต่อไปนี้ลงไป สำหรับควบคุมการคลิกที่ C1, D1, E1

(insert below code)


'Type text on oval shapes and center it

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address = Range("C1").Address Then

Sheet1.Shapes("Oval 2").TextFrame2.TextRange.Characters.Text = "I Love Circle"

Sheet1.Shapes("Oval 2").TextFrame2.TextRange.Characters.Font.Size = 16

Sheet1.Shapes("Oval 2").TextFrame2.VerticalAnchor = msoAnchorMiddle

End If

'Show shapes

If Target.Address = Range("D1").Address Then

Sheet1.Shapes("Oval 2").Visible = msoTrue

End If



'Hide shapes

If Target.Address = Range("E1").Address Then

Sheet1.Shapes("Oval 2").Visible = msoFalse

End If
End Sub

หรือ ดูภาพซอร์สโค้ด vba จากภาพด้านล่างแทนก็ได้ครับชัดกว่า
(Or see this picture)





1. กด Alt+F11 เพื่อกลับมาที่ Excel และสั่งรันโปรแกรม
(Press Al+F11 back to Excel)

2. คลิกที่ C1 เพื่อดูผลที่เกิดขึ้น

(Click c1 cell, see result)






จากภาพเราจะเห็นว่า คำสั่งที่ทำให้ข้อความถูกจัดกึ่งกลางวงกลมคือ
Sheet1.Shapes("Oval 2").TextFrame2.VerticalAnchor = msoAnchorMiddle คลิก D1 แล้วดูผลที่เกิดขึ้น
(Click D1 cell, and see result)





คลิก E1 แล้วดูผลที่เกิดขึ้น
(Click E1 cell, and see result





จากภาพจะเห็นว่า Shape วงกลมได้หายไป...ตัวอย่างเล็กๆนี้เหมาะสำหรับมือใหม่เอาไปหัดเขียนควบคุม shapes และกำหนดค่าให้ shape ได้เป็นอย่างดี...วันนี้ขอจบ Excel tips นี้ไว้แต่เพียงเท่านี้ครับ