รูทีนย่อย Excel VBA: วิธีเรียกย่อยใน VBA พร้อมตัวอย่าง

รูทีนย่อยใน VBA คืออะไร?

A รูทีนย่อยใน VBA คือส่วนของโค้ดที่ทำงานเฉพาะที่อธิบายไว้ในโค้ด แต่ไม่ส่งคืนผลลัพธ์หรือค่า รูทีนย่อยใช้เพื่อแบ่งโค้ดขนาดใหญ่ออกเป็นส่วนเล็กๆ ที่สามารถจัดการได้ รูทีนย่อยสามารถเรียกคืนได้หลายครั้งจากทุกที่ในโปรแกรม

สมมติว่าคุณได้สร้างอินเทอร์เฟซผู้ใช้พร้อมกล่องข้อความสำหรับรับข้อมูลอินพุตของผู้ใช้ คุณสามารถสร้างซับรูทีนที่ล้างเนื้อหาของกล่องข้อความ ซับรูทีนการเรียก VBA เหมาะสมในสถานการณ์ดังกล่าว เนื่องจากคุณไม่ต้องการส่งคืนผลลัพธ์ใดๆ

ทำไมต้องใช้รูทีนย่อย

  • แบ่งโค้ดเป็นโค้ดขนาดเล็กที่สามารถจัดการได้:โปรแกรมคอมพิวเตอร์ทั่วไปมีโค้ดต้นฉบับจำนวนหลายพันบรรทัด ซึ่งทำให้มีความซับซ้อน ซับรูทีนช่วยแก้ปัญหานี้โดยแบ่งโปรแกรมออกเป็นโค้ดย่อยๆ ที่จัดการได้
  • การนำรหัสกลับมาใช้ใหม่ได้สมมติว่าคุณมีโปรแกรมที่ต้องเข้าถึงฐานข้อมูล หน้าต่างเกือบทั้งหมดในโปรแกรมจะต้องโต้ตอบกับฐานข้อมูล แทนที่จะเขียนโค้ดแยกกันสำหรับหน้าต่างเหล่านี้ คุณสามารถสร้างฟังก์ชันที่จัดการการโต้ตอบกับฐานข้อมูลทั้งหมด จากนั้นคุณก็สามารถเรียกใช้จากหน้าต่างใดก็ได้ที่คุณต้องการ
  • รูทีนย่อยและฟังก์ชันมีการจัดทำเอกสารด้วยตนเอง- สมมติว่าคุณมีฟังก์ชันการคำนวณ LoanInterest และอีกฟังก์ชันหนึ่งที่ระบุว่า ConnectToDatabase เพียงแค่ดูชื่อของรูทีนย่อย/ฟังก์ชัน โปรแกรมเมอร์ก็จะสามารถบอกได้ว่าโปรแกรมทำอะไร

กฎการตั้งชื่อรูทีนย่อยและฟังก์ชัน

หากต้องการใช้รูทีนย่อยและฟังก์ชัน มีชุดกฎที่ต้องปฏิบัติตาม

  • ชื่อฟังก์ชันการเรียกรูทีนย่อยหรือ VBA ไม่สามารถมีช่องว่างได้
  • ชื่อย่อยหรือฟังก์ชัน Excel VBA Call ควรขึ้นต้นด้วยตัวอักษรหรือขีดล่าง ไม่สามารถขึ้นต้นด้วยตัวเลขหรืออักขระพิเศษได้
  • รูทีนย่อยหรือชื่อฟังก์ชันไม่สามารถเป็นคีย์เวิร์ดได้ คำสำคัญคือคำที่มีความหมายพิเศษ VBA- คำต่างๆ เช่น Private, Sub, Function และ End ฯลฯ ล้วนเป็นตัวอย่างของคีย์เวิร์ด คอมไพเลอร์ใช้สำหรับงานเฉพาะ

ไวยากรณ์รูทีนย่อย VBA

คุณจะต้องเปิดใช้งานแท็บนักพัฒนาซอฟต์แวร์ใน Excel เพื่อติดตามตัวอย่างนี้ หากคุณไม่ทราบวิธีเปิดใช้งานแท็บนักพัฒนาซอฟต์แวร์ ให้อ่านบทช่วยสอนใน VBA Operaโปร

ที่นี่ในไวยากรณ์

Private Sub mySubRoutine(ByVal arg1 As String, ByVal arg2 As String)
    'do something
End Sub

คำอธิบายไวยากรณ์

รหัส การกระทำ
  • “ย่อยส่วนตัว mySubRoutine(…)”
  • ที่นี่คีย์เวิร์ด "Sub" ใช้เพื่อประกาศรูทีนย่อยชื่อ "mySubRoutine" และเริ่มต้นเนื้อหาของรูทีนย่อย
  • คีย์เวิร์ด Private ใช้เพื่อระบุขอบเขตของรูทีนย่อย
  • “ByVal arg1 เป็นสตริง, ByVal arg2 เป็นสตริง”:
  • ประกาศพารามิเตอร์สองตัวของชนิดข้อมูลสตริงชื่อ arg1 และ arg2
  • “จบย่อย”
  • “End Sub” ใช้เพื่อสิ้นสุดเนื้อหาของรูทีนย่อย

ซับรูทีนต่อไปนี้ยอมรับชื่อและนามสกุลและแสดงในกล่องข้อความ

ตอนนี้เราจะเขียนโปรแกรมและดำเนินการขั้นตอนย่อยนี้ มาดูสิ่งนี้กัน

วิธีเรียก Sub ใน VBA

ด้านล่างนี้เป็นกระบวนการทีละขั้นตอนเกี่ยวกับวิธีการโทร Sub ใน VBA:

  1. ออกแบบอินเทอร์เฟซผู้ใช้และตั้งค่าคุณสมบัติสำหรับการควบคุมผู้ใช้
  2. เพิ่มรูทีนย่อย
  3. เขียนโค้ดเหตุการณ์การคลิกสำหรับปุ่มคำสั่งที่เรียกรูทีนย่อย
  4. ทดสอบการใช้งาน

ขั้นตอน 1) ส่วนติดต่อผู้ใช้

ออกแบบส่วนติดต่อผู้ใช้ตามที่แสดงในภาพด้านล่าง

วิธีเรียก Sub ใน VBA

ตั้งค่าคุณสมบัติต่อไปนี้ คุณสมบัติที่เรากำลังตั้งค่า:

S / N Control อสังหาริมทรัพย์ ความคุ้มค่า
1 ปุ่มคำสั่ง1 Name btnDisplayFullName
2 คำบรรยายภาพ รูทีนย่อยชื่อเต็ม


อินเทอร์เฟซของคุณควรมีลักษณะดังนี้

วิธีเรียก Sub ใน VBA

ขั้นตอน 2) เพิ่มรูทีนย่อย

  1. กด Alt + F11 เพื่อเปิดหน้าต่างโค้ด
  2. เพิ่มซับรูทีนต่อไปนี้
Private Sub displayFullName(ByVal firstName As String, ByVal lastName As String)
    MsgBox firstName & " " & lastName
End Sub

ที่นี่ในรหัส

รหัส สถานะ
  • “ไพรเวทย่อย displayFullName(…)”
  • ประกาศซับรูทีนส่วนตัว displayFullName ที่ยอมรับพารามิเตอร์แบบสตริงสองตัว
  • “ByVal ชื่อเป็นสตริง ByVal นามสกุลเป็นสตริง”
  • ประกาศตัวแปรพารามิเตอร์สองตัวคือ firstName และ lastName
  • ข่าวสารเกี่ยวกับBox ชื่อนามสกุล"
  • มันเรียกข่าวสารเกี่ยวกับBox ฟังก์ชันในตัวสำหรับแสดงกล่องข้อความ จากนั้นส่งตัวแปร 'firstName' และ 'lastName' เป็นพารามิเตอร์
  • เครื่องหมายและ “&” ใช้เพื่อเชื่อมตัวแปรทั้งสองเข้าด้วยกัน และเพิ่มช่องว่างระหว่างตัวแปรทั้งสอง

ขั้นตอน 3) การเรียกรูทีนย่อย

การเรียกรูทีนย่อยจากเหตุการณ์คลิกปุ่มคำสั่ง

  • คลิกขวาที่ปุ่มคำสั่งดังภาพด้านล่าง เลือก ดูโค้ด
  • ตัวแก้ไขโค้ดจะเปิดขึ้น

วิธีเรียก Sub ใน VBA

เพิ่มโค้ดต่อไปนี้ในตัวแก้ไขโค้ดสำหรับเหตุการณ์คลิกของปุ่มคำสั่ง btnDisplayFullName

Private Sub btnDisplayFullName_Click()
    displayFullName "John", "Doe"
End Sub

หน้าต่างโค้ดของคุณควรมีลักษณะดังนี้

วิธีเรียก Sub ใน VBA

บันทึกการเปลี่ยนแปลงและปิดหน้าต่างโค้ด

ขั้นตอน 4) การทดสอบรหัส

บนแถบเครื่องมือของนักพัฒนาให้ปิดโหมดการออกแบบ 'ปิด' ดังที่แสดงด้านล่าง

วิธีเรียก Sub ใน VBA

ขั้นตอน 5) คลิกที่ปุ่มคำสั่ง 'FullName Subroutine'

คุณจะได้รับผลลัพธ์ดังต่อไปนี้

วิธีเรียก Sub ใน VBA

ดาวน์โหลดโค้ด Excel ข้างต้น

สรุป

  • รูทีนย่อยคือโค้ดชิ้นหนึ่งที่ทำงานเฉพาะเจาะจง รูทีนย่อยไม่ส่งคืนค่าหลังจากดำเนินการ
  • รูทีนย่อยเสนอการนำโค้ดกลับมาใช้ใหม่ได้
  • รูทีนย่อยช่วยแบ่งโค้ดขนาดใหญ่ออกเป็นโค้ดขนาดเล็กที่สามารถจัดการได้