วิธีการส่งกลับค่าจากฟังก์ชัน vba (พร้อมตัวอย่าง)
หากต้องการคืนค่าจากฟังก์ชันใน VBA คุณต้องกำหนดค่าให้กับชื่อฟังก์ชัน
ตัวอย่างเช่น เราสามารถสร้างฟังก์ชันต่อไปนี้เพื่อหารสองค่าแล้วส่งคืนผลลัพธ์การหาร:
Function DivideValues(x,y)
DivideValues = x / y
End Function
ชื่อของฟังก์ชันนี้คือ DivideValues ดังนั้นในการส่งคืนค่าจากฟังก์ชันนี้ เราจำเป็นต้องกำหนดผลลัพธ์ของ x/y ให้กับตัวแปรที่มีชื่อเดียวกันจาก DivideValues
ถ้าฟังก์ชันของคุณเกี่ยวข้องกับตรรกะ If Else คุณสามารถกำหนดค่าให้กับชื่อฟังก์ชันได้หลายครั้ง
ตัวอย่างเช่น คุณสามารถสร้างฟังก์ชันต่อไปนี้ที่ส่งคืน “ไม่สามารถหารด้วยศูนย์” ได้ หากคุณพยายามหารด้วยศูนย์ หรือเพียงแค่ส่งคืนผลลัพธ์ของการหาร:
Function DivideValues(x,y)
If y = 0 Then
DivideValues = " Cannot divide by zero "
Else
DivideValues = x / y
End If
End Function
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: วิธีการส่งกลับค่าจากฟังก์ชัน VBA
สมมติว่าเราต้องการสร้างฟังก์ชันใน VBA เพื่อหารค่าของเซลล์ A2 ด้วยค่าของเซลล์ B2 :
เราสามารถสร้างฟังก์ชันต่อไปนี้เพื่อทำสิ่งนี้:
Function DivideValues(x,y)
DivideValues = x / y
End Function
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
ฟังก์ชันส่งคืนค่า 5 ซึ่งเป็นผลลัพธ์ของ 50 หารด้วย 10
เรายังสามารถสร้างฟังก์ชันที่ใช้ตรรกะ If Else เพื่อตรวจสอบก่อนว่าค่าที่เราหารด้วยไม่เท่ากับศูนย์หรือไม่:
Function DivideValues(x,y)
If y = 0 Then
DivideValues = " Cannot divide by zero "
Else
DivideValues = x / y
End If
End Function
หากเราเปลี่ยนค่าในเซลล์ B2 แล้วใช้ฟังก์ชันนี้เพื่อทำการหาร เราจะได้ผลลัพธ์ดังต่อไปนี้:
เนื่องจากเราพยายามหารด้วยศูนย์ ฟังก์ชันจึงส่งคืน “ไม่สามารถหารด้วยศูนย์” ได้
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
วิธีแสดงความคิดเห็นบล็อกโค้ดใน VBA
วิธีตรวจสอบว่ามีไฟล์อยู่โดยใช้ VBA หรือไม่
วิธีสร้างโฟลเดอร์โดยใช้ VBA