รูทีนย่อย 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
คำอธิบายไวยากรณ์
รหัส | การกระทำ |
---|---|
|
|
|
|
|
|
ซับรูทีนต่อไปนี้ยอมรับชื่อและนามสกุลและแสดงในกล่องข้อความ
ตอนนี้เราจะเขียนโปรแกรมและดำเนินการขั้นตอนย่อยนี้ มาดูสิ่งนี้กัน
วิธีเรียก Sub ใน VBA
ด้านล่างนี้เป็นกระบวนการทีละขั้นตอนเกี่ยวกับวิธีการโทร Sub ใน VBA:
- ออกแบบอินเทอร์เฟซผู้ใช้และตั้งค่าคุณสมบัติสำหรับการควบคุมผู้ใช้
- เพิ่มรูทีนย่อย
- เขียนโค้ดเหตุการณ์การคลิกสำหรับปุ่มคำสั่งที่เรียกรูทีนย่อย
- ทดสอบการใช้งาน
ขั้นตอน 1) ส่วนติดต่อผู้ใช้
ออกแบบส่วนติดต่อผู้ใช้ตามที่แสดงในภาพด้านล่าง
ตั้งค่าคุณสมบัติต่อไปนี้ คุณสมบัติที่เรากำลังตั้งค่า:
S / N | Control | อสังหาริมทรัพย์ | ความคุ้มค่า |
---|---|---|---|
1 | ปุ่มคำสั่ง1 | Name | btnDisplayFullName |
2 | คำบรรยายภาพ | รูทีนย่อยชื่อเต็ม |
อินเทอร์เฟซของคุณควรมีลักษณะดังนี้
ขั้นตอน 2) เพิ่มรูทีนย่อย
- กด Alt + F11 เพื่อเปิดหน้าต่างโค้ด
- เพิ่มซับรูทีนต่อไปนี้
Private Sub displayFullName(ByVal firstName As String, ByVal lastName As String) MsgBox firstName & " " & lastName End Sub
ที่นี่ในรหัส
รหัส | สถานะ |
---|---|
|
|
|
|
|
|
ขั้นตอน 3) การเรียกรูทีนย่อย
การเรียกรูทีนย่อยจากเหตุการณ์คลิกปุ่มคำสั่ง
- คลิกขวาที่ปุ่มคำสั่งดังภาพด้านล่าง เลือก ดูโค้ด
- ตัวแก้ไขโค้ดจะเปิดขึ้น
เพิ่มโค้ดต่อไปนี้ในตัวแก้ไขโค้ดสำหรับเหตุการณ์คลิกของปุ่มคำสั่ง btnDisplayFullName
Private Sub btnDisplayFullName_Click() displayFullName "John", "Doe" End Sub
หน้าต่างโค้ดของคุณควรมีลักษณะดังนี้
บันทึกการเปลี่ยนแปลงและปิดหน้าต่างโค้ด
ขั้นตอน 4) การทดสอบรหัส
บนแถบเครื่องมือของนักพัฒนาให้ปิดโหมดการออกแบบ 'ปิด' ดังที่แสดงด้านล่าง
ขั้นตอน 5) คลิกที่ปุ่มคำสั่ง 'FullName Subroutine'
คุณจะได้รับผลลัพธ์ดังต่อไปนี้
สรุป
- รูทีนย่อยคือโค้ดชิ้นหนึ่งที่ทำงานเฉพาะเจาะจง รูทีนย่อยไม่ส่งคืนค่าหลังจากดำเนินการ
- รูทีนย่อยเสนอการนำโค้ดกลับมาใช้ใหม่ได้
- รูทีนย่อยช่วยแบ่งโค้ดขนาดใหญ่ออกเป็นโค้ดขนาดเล็กที่สามารถจัดการได้