Visual Basic for Applications:
การจัดระเบียบโค้ดเข้าไปในฟังก์ชัน
วิธีการ:
ใน VBA ฟังก์ชันถูกกำหนดโดยใช้คำสั่ง Function
และ End Function
นี่คือตัวอย่างง่ายๆ ของวิธีการสร้างฟังก์ชันที่คำนวณพื้นที่ของสี่เหลี่ยมผืนผ้า:
Function CalculateArea(length As Double, width As Double) As Double
CalculateArea = length * width
End Function
เพื่อเรียกใช้ฟังก์ชันนี้ในโค้ด VBA ของคุณและแสดงผลในกล่องข้อความ คุณจะใช้:
Sub ShowArea()
Dim area As Double
area = CalculateArea(10, 5)
MsgBox "The area is " & area
End Sub
เมื่อทำการรัน โค้ดนี้จะแสดงกล่องข้อความที่ระบุว่า: The area is 50
.
การส่งตัวแปรโดยใช้ ByRef และ ByVal
VBA อนุญาตให้คุณส่งตัวแปรไปยังฟังก์ชันได้ทั้งโดยการอ้างอิง (ByRef
) หรือโดยค่า (ByVal
) การอ้างอิงแบบแรกหมายความว่าตัวแปรต้นฉบับสามารถถูกแก้ไขโดยฟังก์ชันได้ ในขณะที่การส่งแบบที่สองจะส่งสำเนามา ป้องกันไม่ให้ตัวแปรต้นฉบับถูกเปลี่ยนแปลง
Function ModifyValue(ByRef num As Integer)
num = num + 5
End Function
Function PreserveValue(ByVal num As Integer) As Integer
num = num + 5
PreserveValue = num
End Function
ลงลึกสุด:
VBA ในฐานะภาษาการเขียนโปรแกรมที่ขับเคลื่อนโดยเหตุการณ์มีความสำคัญอย่างมากต่อฟังก์ชันและ subroutine เพื่อจัดการกับงานต่างๆ ไม่เหมือนกับภาษาสมัยใหม่มากมาย VBA มีลักษณะพิเศษที่คีย์เวิร์ด Function
ไม่เพียงแต่ประกาศบล็อคของโค้ดที่สามารถใช้ซ้ำได้ แต่ยังช่วยให้สามารถกำหนดค่าที่จะส่งกลับได้อย่างอิงพลิซิตโดยตรงกับชื่อของฟังก์ชัน
อย่างไรก็ตาม การออกแบบฟังก์ชันของ VBA ได้รับอิทธิพลจากแบบแผนการเขียนโปรแกรมก่อนหน้าที่การห่อหุ้มและโมดูลาริตี้ถูกค่อยๆ รับรู้ถึงความสำคัญในการพัฒนาซอฟต์แวร์ ฉากหลังทางประวัติศาสตร์นี้ได้นำพา VBA ไปสู่การยอมรับที่ค่อนข้างเป็นอนุรักษนิยมแต่ยังมีประโยชน์ในการจัดระเบียบโค้ด
ในกรณีที่ VBA มีความสามารถมากในสภาพแวดล้อมต้นทางของมัน (เช่น แอปพลิเคชันของ Microsoft Office) มันเป็นสิ่งสำคัญที่จะทราบว่าโลกการเขียนโปรแกรมได้พัฒนาไป ภาษาเช่น Python นำเสนอไวยากรณ์ที่เรียบง่ายและไลบรารีมาตรฐานขนาดใหญ่ ทำให้เป็นทางเลือกที่น่าพอใจสำหรับแอปพลิเคชันนอกชุด Office อย่างไรก็ตาม เมื่อทำงานภายในผลิตภัณฑ์ของ Microsoft Office ความสามารถในการรวมและการอัตโนมัติที่ VBA มอบให้นั้นไม่มีใครเทียบได้
มันควรทราบว่าแม้จะมีอายุ ชุมชนรอบ ๆ VBA ยังคงเป็นที่ตื่นเต้นอยู่เสมอ ที่ยังคงหาวิธีใหม่ ๆ ในการใช้ฟังก์ชันของมันอยู่เสมอ อย่างไรก็ตาม เมื่ออุตสาหกรรมซอฟต์แวร์เคลื่อนไปทางภาษาที่ทันสมัยกว่า มีความยืดหยุ่นและแข็งแกร่งขึ้น โปรแกรมเมอร์ที่คุ้นเคยกับ VBA จึงได้รับแรงจูงใจให้สำรวจทางเลือกเหล่านี้สำหรับงานที่ไม่เกี่ยวข้องกับ Office เพื่อขยายเครื่องมือการเขียนโค้ดของตน