VBA Asc | วิธีใช้ฟังก์ชัน Asc ใน Excel VBA (รหัสอักขระ ASCII)

ฟังก์ชัน Excel VBA Asc

ฟังก์ชัน Asc ใน VBA ใช้เพื่อส่งคืนค่าจำนวนเต็มที่แสดงรหัสอักขระที่ตรงกับอักขระตัวแรกของสตริงที่ให้มา (สตริงที่ระบุเป็นอาร์กิวเมนต์ / พารามิเตอร์) ให้กับฟังก์ชัน สามารถใช้หรือกำหนดในรหัสแมโครที่โดยทั่วไปป้อนผ่าน Visual Basic Editor

สภาพแวดล้อม Excel ที่แมโครทำงานใน Visual Basic Editor (VBE) ที่สามารถใช้เพื่อแก้ไขและดีบักโค้ดแมโคร ถือรหัสแมโครและเชื่อมโยงกับสมุดงาน Excel

ค่าจำนวนเต็มที่ส่งคืนโดยฟังก์ชัน Asc คือรหัสอักขระ ASCII ที่สอดคล้องกันใน VBA ASCII (American Standard Code for Information Interchange) คือการเข้ารหัสอักขระ 7 บิตซึ่งมีอักขระทั้งหมด 128 ตัวที่กำหนดไว้รวมถึงตัวอักษรละตินตัวเลขอารบิก 10 ตัวเครื่องหมายวรรคตอนและอักขระควบคุม ไม่รวมอักขระกำกับเสียงเนื่องจากต้องมีพื้นที่ขั้นต่ำ 8 บิตสำหรับการเข้ารหัส การเข้ารหัสแบบ 8 บิตนี้ทำด้วย ANSI (American National Standards Institute) ซึ่งมีอักขระทั้งหมด 256 ตัว ANSI เรียกอีกอย่างว่า ASCII แบบขยาย

ไวยากรณ์ของฟังก์ชัน VBA Asc

ไวยากรณ์ทั่วไปสำหรับฟังก์ชัน ASC มีดังนี้:

ไวยากรณ์ของสูตร ASC มีอาร์กิวเมนต์ดังนี้

สตริง:จำเป็นหมายถึงสตริงข้อความที่ต้องการรหัสอักขระที่สอดคล้องกันของอักขระตัวแรกและจะส่งคืน

หากสตริงที่ให้มามีเพียงอักขระเดียวฟังก์ชันจะส่งคืนรหัสอักขระตัวเลขสำหรับอักขระนั้นเองอย่างชัดเจน

ตัวอย่างของ Excel VBA Asc

ให้เราดูด้านล่างว่า Asc สามารถใช้ใน Excel VBA ได้อย่างไร

คุณสามารถดาวน์โหลด VBA Asc Function Excel Template ได้ที่นี่ - VBA Asc Function Excel Template

ตัวอย่าง # 1

สมมติว่าเรามีไฟล์ Excel ที่มีสตริงบางส่วนและเราต้องการใช้ฟังก์ชัน Asc กับสตริงเหล่านี้ ให้เราดูสตริงที่มีอยู่ในไฟล์:

เราใช้ฟังก์ชัน Asc ใน VBA ในมาโครที่สามารถเขียนใน Visual Basic Editor และสามารถเข้าถึงได้ดังนี้:

ไปที่นักพัฒนาจากนั้นคลิกที่มาโคร:

ตอนนี้สร้างชื่อมาโคร: ภายใต้ 'ชื่อมาโคร' ให้เขียนชื่อของมาโครที่ต้องการสร้างและเลือก PERSONAL.XLSB ในเมนูดรอปดาวน์ของ 'มาโครใน' มาโครสามารถจัดเก็บไว้ในสมุดงานส่วนตัวซึ่งเป็นสมุดงานที่ซ่อนอยู่ซึ่งจะเปิดขึ้นในพื้นหลังเมื่อใดก็ตามที่ Excel เริ่มทำงาน การเลือก PERSONAL XLSB จะบันทึกมาโครในสมุดงานส่วนบุคคลจึงทำให้แมโครพร้อมใช้งานเสมอเนื่องจากสมุดงานส่วนบุคคลไม่ใช่ระบบ / ไฟล์เฉพาะ

คลิกที่ 'สร้าง'

สิ่งนี้จะเปิดหน้าต่างที่มีขั้นตอนย่อย VBA ใน Visual Basic Editor ดังนี้:

ตอนนี้กำหนดตัวแปรผลลัพธ์

รหัส:

รหัสย่อย () Dim Result1 End Sub

ตอนนี้กำหนดตัวแปร Result1 ด้วยสูตรเพื่อส่งคืนรหัสอักขระของสตริง:

รหัส:

Sub Code () Dim Result1 Result1 = Asc ("Raj") End Sub

ตอนนี้ค่าผลลัพธ์ของ Result1 สามารถแสดงและส่งคืนโดยใช้กล่องข้อความ VBA (MsgBox) ดังนี้:

รหัส:

Sub Code () Dim Result1 Result1 = Asc ("Raj") MsgBox Result1 End Sub

ตอนนี้เมื่อเราเรียกใช้รหัสนี้ด้วยตนเองโดยคลิกที่ 'Run' ที่ด้านบนของหน้าต่างหรือโดยการกด F5 เราจะได้รับรหัสอักขระของตัวอักษรตัวแรกของสตริง: "Raj" แสดงในกล่องข้อความดังนี้:

ดังนั้นเราจะเห็นในภาพหน้าจอด้านบนว่าเมื่อเรียกใช้แมโคร '82' จะถูกส่งกลับในกล่องข้อความ นี่หมายความว่ารหัสอักขระสำหรับ 'R' คือ 82

ตอนนี้ให้เราพูดในตัวอย่างด้านบนที่เราต้องการค้นหารหัสอักขระสำหรับสตริง:“ Karan” ในการดำเนินการนี้ให้ทำตามขั้นตอนเดียวกับด้านบน

ในโค้ดแทน Raj เราจะเขียน Karan เพื่อรับโค้ดอักขระ

รหัส:

 Sub String2 () Dim Result2 Result2 = Asc ("Karan") MsgBox Result2 End Sub 

ตอนนี้เราเรียกใช้รหัสนี้ด้วยตนเองหรือโดยการกด F5 และเราจะได้รับรหัสอักขระของตัวอักษรตัวแรกของสตริง:“ Karan” ที่แสดงในกล่องข้อความดังนี้:

ดังนั้นเราจะเห็นในภาพหน้าจอด้านบนว่าเมื่อเรียกใช้แมโคร '75' จะถูกส่งกลับในกล่องข้อความ หมายความว่ารหัสอักขระสำหรับ 'K' คือ 75

ตอนนี้ให้เราดูว่าผลลัพธ์เปลี่ยนแปลงไปอย่างไรสำหรับสตริงที่เหลือ:

รหัส:

 Sub String3 () Dim Result2 Result2 = Asc ("Heena") MsgBox Result2 End Sub 

 Sub String4 () Dim Result2 Result2 = Asc ("Arun") MsgBox Result2 End Sub 

 Sub String5 () Dim Result2 Result2 = Asc ("A") MsgBox Result2 End Sub 

 Sub String6 () Dim Result2 Result2 = Asc ("a") MsgBox Result2 End Sub 

ในการรันโพรซีเดอร์ย่อยนี้ทีละรายการโค้ดอักขระต่อไปนี้จะถูกส่งคืนในกล่องข้อความ (ทีละรายการตามลำดับ) นี่คือรายการของค่าที่เกี่ยวข้องที่ส่งคืนสำหรับสตริงด้านบน

ดังที่แสดงในภาพหน้าจอด้านบนเราจะเห็นว่าฟังก์ชัน ASC ส่งคืนรหัสอักขระเป็น 65 สำหรับสตริง:“ อรุณ” และสำหรับสตริง:“ A” เนื่องจากรหัสอักขระที่ส่งคืนเป็น VBA ASCII หรือรหัสอักขระที่เทียบเท่าสำหรับตัวอักษรตัวแรกของสตริงในกรณีที่สตริงมีมากกว่าหนึ่งอักขระ ดังนั้น 65 จึงถูกส่งกลับสำหรับทั้งสองเป็นอักขระเริ่มต้นหรืออักขระตัวแรกของสตริง: "อรุณ" เป็น "A"

ตัวอย่าง # 2

หากสตริงที่ระบุเป็นพารามิเตอร์ / อาร์กิวเมนต์ให้กับฟังก์ชัน VBA ASC เป็นสตริงว่าง / ว่าง (หรือสตริงที่ไม่มีอักขระ) ฟังก์ชันจะส่งกลับข้อผิดพลาดรันไทม์

รหัสต่อไปนี้อธิบายเหมือนกัน

 ช่องว่างย่อย () ผลลัพธ์ผลลัพธ์สลัว = Asc ("") MsgBox (ผลลัพธ์) End Sub 

เมื่อเราเรียกใช้รหัสนี้เราจะได้รับข้อผิดพลาด Run-time ดังนี้

ดังนั้นเราจะเห็นในภาพหน้าจอด้านบนว่าเมื่อสตริงที่ระบุเป็นพารามิเตอร์หรืออาร์กิวเมนต์สำหรับฟังก์ชัน ASC ว่างเปล่า / ว่างฟังก์ชันจะส่งกลับข้อผิดพลาดรันไทม์

สิ่งที่ต้องจำ

  • สตริงที่ให้กับฟังก์ชัน VBA ASC สามารถเป็นนิพจน์สตริงที่ถูกต้อง
  • ฟังก์ชัน Asc คำนึงถึงขนาดตัวพิมพ์
  • ค่าจำนวนเต็มที่ส่งคืนโดยฟังก์ชัน Asc อยู่ในช่วง 0-255
  • รหัส ASCII ใน VBA สำหรับ AZ คือ 65-90 และสำหรับ az คือ 97-122
  • ชื่อที่กำหนดให้กับแมโครหรือโพรซีเดอร์ย่อยไม่สามารถเป็นชื่อของฟังก์ชันเริ่มต้นบางอย่างใน VBA หากตั้งชื่ออย่างนั้นโพรซีเดอร์ย่อยจะแสดงข้อผิดพลาด