วันพฤหัสบดีที่ 17 กรกฎาคม พ.ศ. 2557

สูตร Excel การทำตัวยก (Superscript) ให้กับข้อความที่อยู่ในเซลล์ด้วย vba

สูตร Excel การทำตัวยก (Superscript) ให้กับข้อความที่อยู่ในเซลล์ด้วย vba การทำตัวยก หรือ Superscript มี 2 วิธี นั่นคือ ใช้ สูตร Exce l (... thumbnail 1 summary
สูตร Excel การทำตัวยก (Superscript) ให้กับข้อความที่อยู่ในเซลล์ด้วย vba

การทำตัวยก หรือ Superscript มี 2 วิธี นั่นคือ ใช้ สูตร Excel (ใช้ vba) กับไม่ต้องใช้สูตร vba ใดๆ

วิธีแรก ทำได้ง่ายๆดังนี้


1. สมมติว่าเราพิมพ์คำว่า mp3 ที่เซลล์ A1

2. ถ้าเราต้องการให้เลข 3 กลายเป็นตัวยก หรือ Superscript เราก็แค่ใช้เม้าส์เลือกที่เลข 3

3. จากนั้น คลิ้กที่แท็บ Home จากนั้นคลิ้กที่ลูกศรบริเวณ Font ดังภาพด้านล่างนี้



4. เพียงเท่านี้ เลข 3 ก็จะลอยตัวไปอยู่เหนือตัวอักษร mp แล้ว

วิธีที่สอง


เราจะเขียนโปรแกรมสั่งงานให้เกิดการ Superscript (ตัวยก) ขึ้น โดยให้เราทำดังนี้

1. พิมพ์ที่เซลล์ A1 ว่า mp3

2. พิมพ์ที่เซลล์ A2 ว่า mp4

3. พิมพ์ที่เซลล์ A3 ว่า Avi

4. พิมพ์ที่เซลล์ A4 ว่า Dat

5. พิมพ์ที่เซลล์ A5 ว่า Convert5

6. พิมพ์ที่เซลล์ A6 ว่า Backup Files

7. ที่เซลล์ b1 พิมพ์ว่า Superscript (ยกกำลัง)


จากนั้นให้เรากด Alt+F11 แล้วใส่โค้ดต่อไปนี้ลงไปในส่วนการเขียนโค้ด

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

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

For i = 1 To 3

Range("a" & i).Characters(Start:=Len(Range("a" & i).Text), Length:=1).Font.Superscript = True

Next

End If


End Sub

อธิบาย Source code

ลักษณะการทำงานโปรแกรมนี้คือ เราจะให้ Excel ทำตัวยกให้กับอักษรที่อยู่ข้างหลังสุด ดังนั้นสิ่งที่เราต้องทำคือ

หาความยาวของข้อความแต่ละเซลล์

เราจริงต้องใช้ ฟังก์ชั่น len เข้ามาช่วย และใช้ for ลูป ครอบเพื่อให้หาในทุกๆเซลล์จากนั้นก็ทำการ Superscriptให้....Characters(Start:=len(Range(“a” & i).Text),Length:=1) หมายความว่า ให้เลือกตัวสุดท้ายเพียงตัวเดียว เอามาทำตัวยกให้....





ภาพด้านบนนี้คือ หน้าตาโปรแกรมที่เราได้ออกแบบไว้...ในเซลล์ B1 เป็นเซลล์ที่เราจะใช้ตอบสนองต่อการคลิ้กของเรา...กล่าวคือเมื่อเราคลิ้กที่เซลล์ B1 ตัวหนังสือในเซลล์ A1 To A6 จะกลายเป็นตัวยกทั้งหมด (เฉพาะตัวอักขระที่สุดท้ายเท่านั้น) ดูภาพด้านล่างประกอบ




จากภาพเมื่อเราคลิ้กที่เซลล์ b1 จะทำให้ตัวอักขระสุดท้ายของทุกเซลล์กลายเป็นตัวยก (Superscript) ทันที


Source Code นี้สามารถใช้ได้กับข้อความเท่านั้น ถ้าเซลล์นั้นเป็นตัวเลข เราจะไม่สามารถทำ Superscript ได้

เช่น 123,567,890 เป็นต้น แต่ในกรณีที่ตัวเลขปนข้อความ Excel จะถือว่ามันคือข้อความ...เช่น Covert5 จัดเป็นข้อความ, mp3, mp4 จัดเป็นข้อความเช่นกัน...เข้าใจตรงกันน่ะจ๊ะ