เนื้อหา
แม้ว่า Excel จะมีฟังก์ชันในตัวมากมาย แต่อาจมีหลายร้อยฟังก์ชันเช่น SUM, VLOOKUP, LEFT และอื่น ๆ เมื่อคุณเริ่มใช้ Excel สำหรับงานที่ซับซ้อนมากขึ้นคุณมักจะพบว่าคุณต้องการฟังก์ชันที่ไม่มีอยู่ ไม่ต้องกังวลทั้งหมดจะไม่หายไป สิ่งที่คุณต้องมีคือสร้างฟังก์ชันที่ต้องการ
ขั้นตอน
- สร้างเวิร์กบุ๊กใหม่หรือเปิดเวิร์กบุ๊กที่คุณต้องการใช้ User Defined Function (FDU) ที่สร้างขึ้นใหม่
-
เปิด Visual Basic Editor ซึ่งสร้างไว้ใน Microsoft Excel โดยไปที่ Tools-> Macro-> Visual Basic Editor (หรือโดยการกด Alt + F11) -
เพิ่มโมดูลใหม่ ไปยังสมุดงานของคุณโดยคลิกที่ปุ่มที่ระบุ คุณสามารถสร้างฟังก์ชันที่ผู้ใช้กำหนดเองบนแผ่นงานได้เองโดยไม่ต้องเพิ่มโมดูลใหม่ แต่จะทำให้คุณไม่สามารถใช้ฟังก์ชันนี้บนแผ่นงานอื่นในสมุดงานเดียวกันได้ -
สร้าง "ส่วนหัว" หรือ "ต้นแบบ" ของฟังก์ชันของคุณ คุณต้องมีโครงสร้างดังต่อไปนี้: ฟังก์ชันสาธารณะ TheNameOfYourFunction (param1 As type1, param2 As type2) เป็น returnType สามารถมีพารามิเตอร์ได้มากเท่าที่ต้องการและประเภทของพารามิเตอร์อาจเป็นชนิดข้อมูลพื้นฐานหรือประเภทวัตถุ Excel เช่น Range คุณสามารถคิดว่าพารามิเตอร์เป็น "ตัวถูกดำเนินการ" ที่ฟังก์ชันของคุณจะทำงาน ตัวอย่างเช่นเมื่อคุณพูดว่า SIN (45) เพื่อคำนวณไซน์ 45 องศา 45 จะถูกนำมาเป็นพารามิเตอร์ จากนั้นโค้ดฟังก์ชันของคุณจะใช้ค่านี้เพื่อทำการคำนวณและนำเสนอผลลัพธ์ - เพิ่มรหัสฟังก์ชันตรวจสอบให้แน่ใจว่า: 1) ใช้ค่าที่กำหนดโดยพารามิเตอร์ 2) กำหนดผลลัพธ์ให้กับชื่อฟังก์ชัน และ 3) ปิดฟังก์ชันด้วย "end function" การเรียนรู้วิธีการเขียนโปรแกรมใน VBA หรือภาษาอื่น ๆ อาจใช้เวลาสักครู่และต้องมีการสอนโดยละเอียด อย่างไรก็ตามฟังก์ชันมักมีบล็อกโค้ดขนาดเล็กและใช้ทรัพยากรภาษาน้อย องค์ประกอบที่มีประโยชน์ที่สุดของภาษา VBA ได้แก่ :
- บล็อก ถ้าซึ่งช่วยให้คุณสามารถเรียกใช้โค้ดบางส่วนได้ก็ต่อเมื่อตรงตามเงื่อนไขเท่านั้น ตัวอย่างเช่น:
ฟังก์ชันสาธารณะ CourseResult (ตารางเป็นจำนวนเต็ม) เป็นสตริง
ถ้าเกรด> = 5 แล้ว
CourseResult = "อนุมัติ"
อื่น
CourseResult = "ถูกปฏิเสธ"
สิ้นสุดถ้า
สิ้นสุดฟังก์ชัน
สังเกตองค์ประกอบในบล็อกโค้ด ถ้า:IF เงื่อนไขแล้วรหัส ELSE รหัส END IF คำหลัก อื่น ร่วมกับส่วนที่สองของรหัสเป็นทางเลือก
- บล็อก ของซึ่งรันโค้ดส่วนหนึ่ง ในขณะที่ (while) หรือ จนถึง (จนกว่า) จะตรงตามเงื่อนไข ตัวอย่างเช่น:
ฟังก์ชันสาธารณะ IsPrime (ค่าเป็นจำนวนเต็ม) เป็นบูลีน
Dim i As Integer
ผม = 2
IsPrime = จริง
ของ
ถ้า value / i = Int (value / i) แล้ว
IsPrime = เท็จ
สิ้นสุดถ้า
ฉัน = ฉัน + 1
วนซ้ำในขณะที่ i <value และ IsPrime = True
สิ้นสุดฟังก์ชัน
ดูองค์ประกอบอีกครั้ง:รหัส DO LOOP ในขณะที่ / จนกว่าเงื่อนไข นอกจากนี้โปรดสังเกตบรรทัดที่สองซึ่งมีการ "ประกาศตัวแปร" คุณสามารถเพิ่มตัวแปรลงในโค้ดของคุณเพื่อให้สามารถใช้งานได้ในภายหลัง ตัวแปรทำหน้าที่เป็นค่าชั่วคราวภายในโค้ด สุดท้ายดูการประกาศฟังก์ชันเป็น BOOLEAN ซึ่งเป็นชนิดข้อมูลที่อนุญาตเฉพาะค่า TRUE และ FALSE วิธีนี้ในการพิจารณาว่าตัวเลขเป็นจำนวนเฉพาะนั้นไม่เหมาะหรือไม่ แต่ฉันชอบปล่อยให้เป็นแบบนั้นเพื่อให้อ่านโค้ดได้ง่ายขึ้น
- บล็อก สำหรับซึ่งดำเนินการชิ้นส่วนของรหัสตามจำนวนครั้งที่กำหนด ตัวอย่างเช่น:
Public Function Factorial (value As Integer) As Long
ผลสลัวเป็นเวลานาน
Dim i As Integer
ถ้า value = 0 แล้ว
ผลลัพธ์ = 1
ElseIf value = 1 แล้ว
ผลลัพธ์ = 1
อื่น
ผลลัพธ์ = 1
สำหรับ i = 1 ถึงค่า
ผลลัพธ์ = ผลลัพธ์ * i
ต่อไป
สิ้นสุดถ้า
Factorial = ผลลัพธ์
สิ้นสุดฟังก์ชัน
ดูองค์ประกอบอีกครั้ง:สำหรับตัวแปร = ขีด จำกัด ล่างถึงโค้ดขีด จำกัด บนถัดไป สังเกตองค์ประกอบด้วย อื่น ๆ เพิ่มในคำสั่ง ถ้าซึ่งช่วยให้คุณสามารถเพิ่มตัวเลือกเพิ่มเติมสำหรับการเรียกใช้โค้ด สุดท้ายดูที่การประกาศฟังก์ชันและตัวแปร "ผลลัพธ์" เป็น ยาว. ชนิดข้อมูล ยาว อนุญาตให้มีค่าที่สูงกว่า "จำนวนเต็ม" มาก
ด้านล่างนี้คือรหัสสำหรับฟังก์ชันที่แปลงตัวเลขเป็นคำ
- บล็อก ถ้าซึ่งช่วยให้คุณสามารถเรียกใช้โค้ดบางส่วนได้ก็ต่อเมื่อตรงตามเงื่อนไขเท่านั้น ตัวอย่างเช่น:
- กลับไปที่สมุดงานของคุณ และใช้ฟังก์ชันโดยเริ่มต้นเนื้อหาของเซลล์ด้วยไฟล์ เท่ากัน ตามด้วยชื่อบทบาทของคุณ เพิ่มวงเล็บเปิดในชื่อฟังก์ชันพารามิเตอร์ที่คั่นด้วย ลูกน้ำ และวงเล็บปิดสุดท้าย ตัวอย่างเช่น:= NumberToLetters (A4) คุณยังสามารถใช้สูตรที่ผู้ใช้กำหนดเองได้โดยค้นหาในหมวดหมู่ ผู้ใช้กำหนด ในตัวช่วยสร้างเพื่อป้อนสูตร เพียงแค่คลิกที่ปุ่ม Fx อยู่ทางด้านซ้ายของแถบสูตรพารามิเตอร์สามารถมีได้สามประเภท:
- ค่าคงที่ป้อนลงในสูตรของเซลล์โดยตรง สตริงต้องอยู่ในเครื่องหมายคำพูดในกรณีนี้
- การอ้างอิงเซลล์เช่น B6 หรือช่วงเวลาเช่น A1: C3 (พารามิเตอร์ต้องเป็นประเภท หยุดพัก"")
- ฟังก์ชันอื่น ๆ ที่จัดอยู่ในฟังก์ชันของคุณ (ฟังก์ชันของคุณสามารถจัดกลุ่มไว้ในฟังก์ชันอื่น ๆ ได้เช่นกัน) นั่นคือ: = Factorial (MAX (D6: D8))
- ตรวจสอบว่าผลลัพธ์เป็นอย่างไร หลังจากใช้ฟังก์ชันหลายครั้งตรวจสอบให้แน่ใจว่าจัดการค่าพารามิเตอร์ต่างๆได้อย่างถูกต้อง:
เคล็ดลับ
- เมื่อใดก็ตามที่คุณเขียนบล็อกโค้ดภายในโครงสร้างการควบคุมเช่น If, For, Do เป็นต้นอย่าลืมเยื้องบล็อกโดยใช้ช่องว่างหรือแท็บบางส่วน (สไตล์การเยื้องขึ้นอยู่กับคุณ)ด้วยวิธีนี้โค้ดของคุณจะเข้าใจได้ง่ายขึ้นและจะตรวจพบข้อผิดพลาดและปรับปรุงโค้ดได้ง่ายขึ้นมาก
- Excel มีฟังก์ชันในตัวมากมายและการคำนวณส่วนใหญ่สามารถทำได้โดยใช้เพียงอย่างเดียวหรือใช้ร่วมกัน ค้นหารายการฟังก์ชันที่มีก่อนเริ่มโค้ดของคุณเอง การดำเนินการสามารถทำได้เร็วขึ้นหากคุณใช้ฟังก์ชันในตัว
- บางครั้งฟังก์ชันอาจไม่ต้องการพารามิเตอร์ทั้งหมดในการคำนวณผลลัพธ์ ในกรณีนี้คุณสามารถใช้คำหลัก ไม่จำเป็น ก่อนชื่อพารามิเตอร์ในส่วนหัวของฟังก์ชัน คุณสามารถใช้ไฟล์ IsMissing (ชื่อพารามิเตอร์) ภายในโค้ดเพื่อพิจารณาว่ามีการกำหนดค่าให้กับพารามิเตอร์หรือไม่
- หากคุณไม่ทราบวิธีเขียนโค้ดสำหรับฟังก์ชันให้อ่านวิธีการเขียนมาโครอย่างง่ายใน Microsoft Excel
- ใช้ชื่อที่ยังไม่ได้กำหนดเป็นชื่อฟังก์ชันใน Excel มิฉะนั้นคุณจะสามารถใช้ฟังก์ชันได้เพียงฟังก์ชันเดียว
คำเตือน
- เนื่องจากมาตรการรักษาความปลอดภัยบางคนอาจปิดการใช้งานมาโคร แจ้งให้เพื่อนร่วมงานทราบว่าหนังสือที่คุณกำลังส่งมีมาโครและเชื่อถือได้เนื่องจากจะไม่ทำให้คอมพิวเตอร์ของคุณเสียหาย
- ฟังก์ชันที่ใช้ในบทความนี้ไม่ใช่วิธีที่ดีที่สุดในการแก้ปัญหาที่กล่าวถึง ใช้เพื่ออธิบายการใช้โครงสร้างการควบคุมภาษาเท่านั้น
- VBA เช่นเดียวกับภาษาอื่น ๆ มีโครงสร้างการควบคุมอื่น ๆ นอกเหนือจาก Do, If และ For สิ่งเหล่านี้อธิบายไว้ที่นี่เพื่อชี้แจงสิ่งที่สามารถทำได้ภายในซอร์สโค้ดของฟังก์ชัน มีบทเรียนออนไลน์มากมายที่คุณสามารถเรียนรู้ VBA ได้