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 นี้ไว้แต่เพียงเท่านี้ครับ