การจัดระเบียบโค้ดเข้าไปในฟังก์ชัน

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 เพื่อขยายเครื่องมือการเขียนโค้ดของตน