สูตร Excel การใช้ vba แปลงข้อความไปเป็นตัวเลข
สูตร Excel ที่ใช้แปลงจากข้อความไปเป็นตัวเลข คือ ฟังก์ชั่น code ซึ่งสามารถแปลงตัวอักษรไปเป็นรหัสแอสกี เช่น แปลงจาก A ไปเป็น 65 และ ถ้าเป็น a ตัวเล็กก็คือ 97 อย่างนี้เป็นต้น
แต่วันนี้เราจะใช้วิธีการแปลงอักขระให้เป็นรหัสตัวเลขโดยใช้ vba เพื่อนำเสนอวิธีการใหม่ๆ สามารถนำไปประยุกต์ต่อไป
โดยในตัวอย่างนี้เราจะจำลองการทำงานดังนี้คือ
สมมติว่าเราพิมพ์ข้อความใดๆที่เซลล์ a1 แล้วกด enter ที่เซลล์ b1 ก็จะเปลี่ยนเป็นรหัสตัวเลข เช่น เราพิมพ์ที่เซลล์ a1 ว่า success แล้วกด Enter ที่เซลล์ b1 จะเท่ากับ 115 117 99 99 101 115 115 โดยเราจะสังเกตว่า โปรแกรมจะทำการแปลง
s เป็น 115
u เป็น 117
c เป็น 99
c อีกตัวก็เป็น 99 เช่นกัน
e เป็น 101
ส่วน s 2 ตัวหลัง ก็เป็น 115 และ 115 เช่นกัน
โดยแปลงเสร็จก็ให้แสดงในบรรทัดเดียวกันอย่างที่ได้กล่าวมาแล้วนั้น
วิธีการสร้างชุดคำสั่งจาก vba ให้เราทำได้โดยไม่ต้องออกแบบอะไรไว้ที่ Excel เราเพียงแต่กด Alt+F11 เพื่อไปยังหน้าจอ visual basic เท่านั้น
แล้ว
ที่ช่องด้านบนฝั่งซ้ายให้เลือก Worksheet ด้านบนฝั่งขวา เลือก SelectionChange
แล้วใส่โค้ดต่อไปนี้ลงไประหว่าง Private Sub และ End Sub
For i = 1 To Len(Range("a1").Value)
mytext = mytext & " " & Strings.Asc(Mid(Range("a1").Text, i, 1))
Range("b1").Value = Trim(mytext)
Next
เสร็จแล้วกด Alt + F11 กลับมาที่ Excel แล้วทดสอบการทำงานของโปรแกรม โดยให้ลองพิมพ์ข้อความใดๆเข้าไปที่เซลล์ A1 แล้วกด Enter
เราจะเห็นผลลัพธ์ที่ช่องเซลล์ B1 นั่นคือ ข้อความถูกแปลงเป็นรหัสตัวเลข
สูตร Excel ที่ใช้แปลงจากข้อความไปเป็นตัวเลข คือ ฟังก์ชั่น code ซึ่งสามารถแปลงตัวอักษรไปเป็นรหัสแอสกี เช่น แปลงจาก A ไปเป็น 65 และ ถ้าเป็น a ตัวเล็กก็คือ 97 อย่างนี้เป็นต้น
แต่วันนี้เราจะใช้วิธีการแปลงอักขระให้เป็นรหัสตัวเลขโดยใช้ vba เพื่อนำเสนอวิธีการใหม่ๆ สามารถนำไปประยุกต์ต่อไป
โดยในตัวอย่างนี้เราจะจำลองการทำงานดังนี้คือ
สมมติว่าเราพิมพ์ข้อความใดๆที่เซลล์ a1 แล้วกด enter ที่เซลล์ b1 ก็จะเปลี่ยนเป็นรหัสตัวเลข เช่น เราพิมพ์ที่เซลล์ a1 ว่า success แล้วกด Enter ที่เซลล์ b1 จะเท่ากับ 115 117 99 99 101 115 115 โดยเราจะสังเกตว่า โปรแกรมจะทำการแปลง
s เป็น 115
u เป็น 117
c เป็น 99
c อีกตัวก็เป็น 99 เช่นกัน
e เป็น 101
ส่วน s 2 ตัวหลัง ก็เป็น 115 และ 115 เช่นกัน
โดยแปลงเสร็จก็ให้แสดงในบรรทัดเดียวกันอย่างที่ได้กล่าวมาแล้วนั้น
วิธีการสร้างชุดคำสั่งจาก vba ให้เราทำได้โดยไม่ต้องออกแบบอะไรไว้ที่ Excel เราเพียงแต่กด Alt+F11 เพื่อไปยังหน้าจอ visual basic เท่านั้น
แล้ว
ที่ช่องด้านบนฝั่งซ้ายให้เลือก Worksheet ด้านบนฝั่งขวา เลือก SelectionChange
แล้วใส่โค้ดต่อไปนี้ลงไประหว่าง Private Sub และ End Sub
For i = 1 To Len(Range("a1").Value)
mytext = mytext & " " & Strings.Asc(Mid(Range("a1").Text, i, 1))
Range("b1").Value = Trim(mytext)
Next
เสร็จแล้วกด Alt + F11 กลับมาที่ Excel แล้วทดสอบการทำงานของโปรแกรม โดยให้ลองพิมพ์ข้อความใดๆเข้าไปที่เซลล์ A1 แล้วกด Enter
เราจะเห็นผลลัพธ์ที่ช่องเซลล์ B1 นั่นคือ ข้อความถูกแปลงเป็นรหัสตัวเลข
Example 2
Example 3