แม้ว่า Excel จะมีฟังก์ชันในตัวนับร้อยอยู่แล้ว เช่น SUM, VLOOKUP, LEFT และอื่นๆ ฟังก์ชันที่มีอยู่ภายในมักจะไม่เพียงพอสำหรับการทำงานที่ค่อนข้างซับซ้อน อย่างไรก็ตาม ไม่ต้องกังวลเพราะคุณจะต้องสร้างฟังก์ชันที่จำเป็นด้วยตัวเองเท่านั้น
ขั้นตอน
ขั้นตอนที่ 1 สร้างเวิร์กบุ๊กใหม่หรือเปิดเวิร์กบุ๊กที่คุณต้องการประมวลผลด้วย User Defined Functions (UDF)
ขั้นตอนที่ 2 เปิด Visual Basic Editor ใน Microsoft Excel ผ่าน Tools->Macro->Visual Basic Editor (หรือกดทางลัด Alt+F11)
ขั้นตอนที่ 3 คลิกปุ่ม โมดูล เพื่อเพิ่มโมดูลใหม่ลงในเวิร์กชีตของคุณ
คุณสามารถสร้าง UDF ในเวิร์กบุ๊กโดยไม่ต้องเพิ่มโมดูลใหม่ แต่ฟังก์ชันจะไม่ทำงานในเวิร์กชีตอื่นในเวิร์กบุ๊กเดียวกัน
ขั้นตอนที่ 4 สร้าง "หัว" หรือ "ต้นแบบ" ของฟังก์ชันของคุณ
ต้นแบบฟังก์ชันต้องเป็นไปตามโครงสร้างต่อไปนี้:
ฟังก์ชันสาธารณะ "ชื่อฟังก์ชัน" (พารามิเตอร์ 1 เป็นประเภทที่ 1 พารามิเตอร์ 2 เป็นประเภท 2) เป็นประเภทผลลัพธ์
ต้นแบบสามารถมีฟังก์ชันได้มากเท่าที่เป็นไปได้ และชนิดของต้นแบบสามารถเป็นชนิดข้อมูลพื้นฐานทั้งหมดหรือชนิดวัตถุ Excel ในรูปแบบของช่วง คุณสามารถนึกถึงพารามิเตอร์เป็น “ตัวดำเนินการ” (ตัวดำเนินการ) ที่ฟังก์ชันจะทำหน้าที่ ตัวอย่างเช่น เมื่อคุณเขียน SIN(45) เพื่อคำนวณไซน์ของ 45 องศา ตัวเลข 45 จะถูกนำมาเป็นพารามิเตอร์ จากนั้นรหัสฟังก์ชันจะใช้ค่าเหล่านั้นในการคำนวณและแสดงผล
ขั้นตอนที่ 5. เพิ่มรหัสฟังก์ชันเพื่อให้แน่ใจว่าคุณ: 1) ใช้ค่าที่กำหนดโดยพารามิเตอร์; 2) ส่งผลลัพธ์ไปยังชื่อฟังก์ชัน และ 3) ปิดฟังก์ชันด้วยประโยค "end function". การเรียนรู้การเขียนโปรแกรมใน VBA หรือภาษาอื่น ๆ ต้องใช้เวลาและคำแนะนำโดยละเอียด โชคดีที่ฟังก์ชันเหล่านี้มักจะมีโค้ดบล็อกขนาดเล็กและไม่ได้ใช้คุณลักษณะภาษาการเขียนโปรแกรมมากนัก นี่คือองค์ประกอบบางส่วนของภาษา VBA ที่สามารถใช้ได้:
- บล็อก If (if) ซึ่งอนุญาตให้คุณเรียกใช้โค้ดบางส่วนได้ก็ต่อเมื่อตรงตามเงื่อนไขเท่านั้น ตัวอย่างเช่น:
- . คุณอาจละเว้นคำหลัก Else พร้อมกับส่วนที่สองของโค้ด เนื่องจากเป็นทางเลือก
- บล็อก Do (do) ซึ่งเรียกใช้งานส่วนหนึ่งของโค้ดในขณะที่หรือจนกว่าเมื่อหรือจนกว่าเงื่อนไขจะตรงตามเงื่อนไข ตัวอย่างเช่น:
- . นอกจากนี้ ให้สังเกตบรรทัดที่สองซึ่ง "ประกาศ" ตัวแปร คุณสามารถเพิ่มตัวแปรลงในโค้ดของคุณเพื่อใช้ในภายหลังได้ ตัวแปรทำหน้าที่เป็นค่าชั่วคราวในโค้ด สุดท้าย ให้พิจารณาการประกาศฟังก์ชันเป็น BOOLEAN ซึ่งเป็นประเภทข้อมูลที่อนุญาตเฉพาะค่า TRUE หรือ FALSE วิธีการกำหนดจำนวนเฉพาะนี้อยู่ไกลจากวิธีที่เหมาะสมที่สุด แต่โค้ดนี้ถูกเขียนในลักษณะที่อ่านง่าย
- สำหรับบล็อค (ถึง) ซึ่งรันโค้ดจำนวนหนึ่ง ตัวอย่างเช่น:
- ค่าคงที่ที่พิมพ์ลงในสูตรของเซลล์โดยตรง ในกรณีนี้ ต้องยกข้อความ (สตริง)
- การอ้างอิงเซลล์ ตัวอย่างเช่น B6 หรือช่วงเช่น A1:C3 (พารามิเตอร์ต้องเป็นประเภทข้อมูล “ช่วง”)
-
ฟังก์ชันอื่นที่อยู่ในฟังก์ชันของคุณ (ฟังก์ชันของคุณสามารถรวมอยู่ในฟังก์ชันอื่นได้ด้วย) ตัวอย่างเช่น: =Factorial(MAX(D6:D8))
ขั้นตอนที่ 7 ตรวจสอบให้แน่ใจว่าผลลัพธ์ถูกต้อง
ใช้หลายครั้งเพื่อให้แน่ใจว่าฟังก์ชันสามารถจัดการค่าพารามิเตอร์ต่างๆ ได้อย่างถูกต้อง:
เคล็ดลับ
- เมื่อเขียนบล็อคโค้ดในโครงสร้างการควบคุม เช่น If, For, Do ฯลฯ ตรวจสอบให้แน่ใจว่าคุณเยื้อง (แทรกเส้นขอบด้านซ้ายด้านในเล็กน้อย) บล็อกโค้ดโดยกดแป้นเว้นวรรคหลายๆ ครั้ง หรือ tab ซึ่งจะทำให้โค้ดเข้าใจได้ง่ายขึ้นและหาข้อผิดพลาดได้ง่ายขึ้น นอกจากนี้ ฟังก์ชันการทำงานที่เพิ่มขึ้นยังทำให้ง่ายขึ้นอีกด้วย
- หากคุณไม่ทราบวิธีเขียนโค้ดสำหรับฟังก์ชัน โปรดอ่านบทความวิธีเขียนแมโครอย่างง่ายใน Microsoft Excel
- บางครั้ง ฟังก์ชันไม่ต้องการพารามิเตอร์ทั้งหมดเพื่อคำนวณผลลัพธ์ ในกรณีนี้ คุณสามารถใช้คีย์เวิร์ด Optional ก่อนชื่อพารามิเตอร์ในส่วนหัวของฟังก์ชันได้ คุณสามารถใช้ฟังก์ชัน IsMissing(parameter_name) ในโค้ดของคุณเพื่อตรวจสอบว่าพารามิเตอร์ถูกกำหนดเป็นค่าหรือไม่
- ใช้ชื่อที่ไม่ได้ใช้เป็นฟังก์ชันใน Excel เพื่อไม่ให้มีการเขียนทับและลบฟังก์ชันใดๆ
- Excel มีฟังก์ชันในตัวมากมาย และการคำนวณส่วนใหญ่สามารถทำได้โดยใช้ฟังก์ชันในตัวเหล่านี้ ทั้งแบบแยกส่วนหรือทั้งหมดพร้อมกัน ตรวจสอบให้แน่ใจว่าคุณได้ดูรายการฟังก์ชันที่มีอยู่ก่อนที่จะเริ่มเขียนโค้ดด้วยตนเอง การดำเนินการสามารถทำได้เร็วขึ้นหากคุณใช้ฟังก์ชันในตัว
คำเตือน
- ด้วยเหตุผลด้านความปลอดภัย หลายคนปิดใช้งานมาโคร ตรวจสอบให้แน่ใจว่าคุณได้แจ้งผู้รับสมุดงานของคุณว่าสมุดงานที่ส่งมีมาโคร และมาโครเหล่านี้จะไม่เป็นอันตรายต่อคอมพิวเตอร์ของพวกเขา
- ฟังก์ชันที่ใช้ในบทความนี้ไม่ใช่วิธีที่ดีที่สุดในการแก้ปัญหาที่เกี่ยวข้อง ตัวอย่างนี้ใช้เพื่ออธิบายการใช้โครงสร้างการควบคุมภาษา
- VBA เช่นเดียวกับภาษาอื่น ๆ มีโครงสร้างการควบคุมอื่น ๆ อีกหลายอย่างนอกเหนือจาก Do, If และ For โครงสร้างที่กล่าวถึงในที่นี้อธิบายเฉพาะสิ่งที่สามารถทำได้ในซอร์สโค้ดของฟังก์ชัน มีคำแนะนำมากมายบนอินเทอร์เน็ตที่สามารถใช้เพื่อช่วยให้คุณเรียนรู้ VBA
ผลลัพธ์หลักสูตรฟังก์ชันสาธารณะ (เป็นค่าจำนวนเต็ม) เป็นสตริง
ถ้าค่า >= 5 แล้ว
ผลลัพธ์ของหลักสูตร = "ยอมรับ"
อื่น
ผลการเรียน = "ถูกปฏิเสธ"
จบถ้า
ฟังก์ชั่นสิ้นสุด
สังเกตองค์ประกอบในบล็อกโค้ด If:
IF เงื่อนไข แล้ว รหัส ELSE รหัส END IF
ฟังก์ชันสาธารณะ BilPrima (ค่าเป็นจำนวนเต็ม) เป็นบูลีน
Dim ฉันเป็นจำนวนเต็ม
ผม = 2
บิลพรีมา = ทรู
ทำ
ถ้าค่า / i = Int(ค่า / i) แล้ว
BilPrima = เท็จ
จบถ้า
ผม = ผม + 1
วนรอบในขณะที่ฉัน <value And NumberPrima = True
ฟังก์ชั่นสิ้นสุด
ดูองค์ประกอบอีกครั้ง:
DO รหัส LOOP WHILE/จนกว่าเงื่อนไข
แฟกทอเรียลฟังก์ชันสาธารณะ(value As Integer) As Long
ผลติ่มซำนาน
Dim ฉันเป็นจำนวนเต็ม
ถ้าค่า = 0 แล้ว
ผลลัพธ์ = 1
ค่า ElseIf = 1 แล้ว
ผลลัพธ์ = 1
อื่น
ผลลัพธ์ = 1
สำหรับผม = 1 ถึงค่า
ผล = ผลลัพธ์ * i
ต่อไป
จบถ้า
แฟกทอเรียล = ผลลัพธ์
ฟังก์ชั่นสิ้นสุด
ดูองค์ประกอบอีกครั้ง:
FOR ตัวแปร = ขีดจำกัดล่าง TO ขีดจำกัดบนของโค้ด NEXT
. นอกจากนี้ ให้สังเกตองค์ประกอบ ElseIf เพิ่มเติมในคำสั่ง If ซึ่งช่วยให้คุณสามารถเพิ่มตัวเลือกเพิ่มเติมให้กับโค้ดที่กำลังดำเนินการได้ สุดท้าย ให้พิจารณาฟังก์ชัน "ผลลัพธ์" และตัวแปรที่ประกาศเป็น Long ชนิดข้อมูลแบบยาวให้ค่าที่มากกว่าจำนวนเต็มมาก
ด้านล่างแสดงรหัสสำหรับฟังก์ชันที่แปลงตัวเลขขนาดเล็กเป็นคำ
ขั้นตอนที่ 6 กลับไปที่สมุดงานและใช้ฟังก์ชันโดยเขียนสัญลักษณ์ "เท่ากับ" (=) ตามด้วยชื่อของฟังก์ชันในเซลล์
เขียนวงเล็บเปิด (“(“) หลังชื่อฟังก์ชัน โดยใช้เครื่องหมาย อาการโคม่า เพื่อแยกพารามิเตอร์ และลงท้ายด้วยวงเล็บปิด (“)”) ตัวอย่างเช่น:
=NumberToLetter(A4)
. คุณยังสามารถใช้สูตรโฮมเมดได้ด้วยการค้นหาในหมวดหมู่ ผู้ใช้กำหนด ภายในตัวเลือกแทรกสูตร คุณเพียงแค่คลิกปุ่ม Fx ทางด้านซ้ายของแถบสูตร รูปแบบพารามิเตอร์ในฟังก์ชันมีสามประเภท: