※ Download: เขียน macro excel
จริงๆ Concept หลักๆ ของ VBA ก็ไม่พ้น 9 ข้อข้างบนอย่างที่ผมบอกไปแหละครับ มีแค่นี้จริงๆ แต่การที่เราจะสร้างโปรแกรม VBA เจ๋งๆ ขึ้นมาได้นั้น มันขึ้นอยู่กับความคิดของเรามากกว่า ว่าจะแก้ปัญหาที่พบเจอด้วยวิธีไหนดี? เช่น ถ้าคุณมีพนักงานอยู่ 3 คนที่พร้อมจะทำตามคำสั่งคุณได้ คุณก็ต้องมีวิธีเรียกแต่ละคนว่าจะเรียกเค้าว่าอะไร? If you continue browsing the site, you agree to the use of cookies on this website. ลดระยะเวลาในการทำงานซ้ำ ๆ ลง 2.
แต่ปัญหาติดอยู่อย่างเดียวครับ คือ พนักงานคนนี้ไม่เข้าใจในงานที่ทำแม้แต่น้อย คิดเองก็ไม่เป็น ทำตามคำสั่งได้อย่างเดียว แล้วคุณต้องบอกให้ละเอียดๆ ด้วยนะ บอกแค่ไหนทำแค่นั้นเลยเอ้า! ที่หน้าต่าง Excel Options ให้คลิกที่รายการ Customize Ribbon 3.
- ข่าวดีคือ ใน VBA เราสามารถเรียกใช้ฟังก์ชั่นของ Excel ได้ด้วย โดยการใช้คำสั่งที่ชื่อว่า WorksheetFunction ในรูปแบบ Application.
การเขียนโปรแกรมให้ Excel ทำงานแบบอัตโนมัติด้วย VBA Visual Basic for Application เป็นหัวข้อใน Excel ที่มีคนอยากเรียนรู้เยอะมากที่สุดตลอดกาลลลลลเลยล่ะ! มันก็คือการเขียนโปรแกรมแบบหนึ่ง ซึ่งแทนที่เราจะนั่งเอาเม้าส์หรือคีย์บอร์ดกดคำสั่ง Excel ทีละ Step ตามปกติ เราสามารถเขียนคำสั่งใน VBA เอาไว้ เพื่อให้ Excel สามารถทำงานต่างๆ ตามที่เรากำหนดได้เลย แถมยังใส่ความฉลาดให้มันได้ด้วยนะ เช่น ถ้าสถานการณ์เป็นแบบนี้ๆๆ จะให้มันทำงานยังไงต่อ คล้ายๆ ใส่ฟังก์ชั่น IF นั่นแหละครับ แต่เป็นการใส่ให้กับชุดคำสั่งแทน แนวทาง VBA ที่ผมจะสอน การเรียนรู้ VBA ตามแนวทางที่ผมจะสอน ต้องบอกก่อนว่าจะเป็นแนวทางที่ ใช้ VBA เป็นตัวเสริมการทำงานเท่านั้น นั่นคือจะใช้มันทำงานถึกๆ งานที่ไม่ต้องใช้ความคิดอะไร หรือ ใช้เมื่อไม่สามารถใช้สูตรหรือเครื่องมือปกติของ Excel ทำได้ งานอะไรที่ Excel ทำได้ เราจะปล่อยให้ Excel ทำไป เช่น พวกสูตรคำนวณ หรือเครื่องมือ Ribbon อย่าง Pivot Table ส่วนงานไหนที่ทำไม่ได้ เราถึงจะใช้ VBA มาช่วย!! ดังนั้นก่อนอื่น คุณควรมีความรู้พื้นฐาน Excel ให้ดีพอสมควรก่อน แล้วค่อยมาเรียนรู้ VBA ในแบบที่ผมจะสอนให้นะครับ และต้องขอบอกไว้ก่อนว่า ในบทความนี้เราจะยังไม่ลงลึกถึงการเขียนเชิงเทคนิคจริงๆ แต่จะเน้นให้เห็นแนวคิดและภาพรวมก่อน ซึ่งสำคัญกว่าความรู้เชิงเทคนิคมาก! สำหรับความรู้เชิงเทคนิคจะอยู่ในบทความถัดๆ ไปครับ เอาล่ะ…อ่านมาถึงตรงนี้ก็เริ่มยาวแล้ว เพื่อไม่ให้เสียเวลา เรามาดูกันเลยว่า 10 Concepts ที่ผมจะบอกมีอะไรบ้าง? เช่น ถ้าคุณมีพนักงานอยู่ 3 คนที่พร้อมจะทำตามคำสั่งคุณได้ คุณก็ต้องมีวิธีเรียกแต่ละคนว่าจะเรียกเค้าว่าอะไร? เช่น พนักงาน A นัดหมายการประชุม, พนักงาน B เตรียมขนมเบรค, พนักงาน C จดบันทึกการประชุม เป็นต้น แปลว่า เราจะต้องมีวิธีอ้างอิงเพื่อเรียกใช้พนักงานแต่ละคนนั่นเอง… เรียกชื่อได้ก็ควบคุมได้ เรื่องของเรื่องคือ เราจะอ้างอิงไปหาคนงานแต่ละคนใน Excel ยังไงดีล่ะ? ข่าวดีคือ เรื่องนี้คุณสามารถใช้ Macro Recorder ลองบันทึกการสั่งการของเราที่ทำกับ Object นั้นๆ ใน Excel แล้วค่อย มาดู Code VBA ภายหลังได้ว่าจะต้องเรียก Object นั้นว่าอะไร แค่นี้ก็ไม่เป็นปัญหาแล้วครับ ดังนั้นเรื่องนี้จึงไม่ใช่สิ่งที่ต้องกังวลมากนัก ซึ่งเมื่อคุณลองดู Code ที่โผล่มาจะพบว่า แต่ละ Object นั้นมีความเป็นแม่ลูกกันอยู่พอสมควร และจะอยู่ในรูปแบบของ Objectแม่. Objectลูก เช่น ถ้า Object แม่เป็นคน เราก็สามารถอ้างอิงไปที่แขนของนาย A ได้ว่า นายA. แขน หรือจะอ้างอิงไปที่แขนของนาย B ได้ว่า นายB. ขา เป็นต้น Concept 3 : เราสั่งอะไรกับ Object ได้บ้าง? เมื่อรู้แล้วว่าเราจะเรียก Object แต่ละอันว่าอะไร… คำถามถัดไปก็คือ แล้วเราจะสั่งงานอะไรมันได้บ้าง? วิธีที่ง่ายที่สุดก็คือใช้ Macro Recorder อีกแล้ว! บันทึกสิ่งที่เราทำใน Excel แล้วมาดู Code เช่นเดิมครับ แต่วิธีสังเกตคือ ชื่อของ Method และ Property จะตามอยู่หลังจากชื่อ Object ครับ ซึ่งจะอยู่ในรูปแบบ Object. ใจเย็นครับ วิธีตีความที่ถูกต้องของคำสั่งบรรทัดนี้ก็คือ ให้เพิ่มค่า x จากเดิมไป 1 หน่วยต่างหากล่ะ! ในหลายๆ สถานการณ์ ถ้าผมขี้เกียจสั่งคำสั่ง 3 อันแยกกันแบบนั้นทุกครั้ง ผมก็สามารถรวบให้มันอยู่ภายใต้ชุดคำสั่งเดียวกันได้เลยครับ ซึ่งใน VBA เราจะเรียกชุดคำสั่งว่า Sub ซึ่งจะ Run ชุดคำสั่งย่อยที่อยู่ภายในนั้นจากบนลงล่าง เช่น ถ้าผมรวม 3 อันนั้นเข้าไปใน Sub ที่ชื่อว่า จัดงานประชุม ดังนี้ Sub จัดงานประชุม พนักงาน A นัดหมายการประชุม พนักงาน B เตรียมขนมเบรค พนักงาน C จดบันทึกการประชุม End sub แล้วครั้งต่อไปเมื่อผมสั่งคำสั่งว่า Call จัดงานประชุม คราวนี้ VBA ก็จะทำ 3 คำสั่งนั้นตามลำดับเลย! ไม่ต้องมาสั่งแยกอีกต่อไป แล้วถ้ามีอยู่ Action เดียวยังต้องมี Sub อีกมั้ย? ใน VBA เราไม่สามารถใส่คำสั่งโดยที่ไม่มีที่อยู่ได้ แปลว่าถึงมีอยู่คำสั่งเดียว เราก็ต้องเอาไว้ใน Sub อยู่ดี แต่ในความจริงแล้ว ยังมีชุดคำสั่งอีกแบบนอกจาก Sub นั่นก็คือ Function ซึ่งจะพูดถึงใน Concept ถัดไป Concept 5 : เราสร้างฟังก์ชั่นใช้เองใน Excel ได้ด้วย VBA อย่างที่ผมบอกว่านอกจาก Sub แล้ว ใน VBA เรายังมีชุดคำสั่งอีกประเภทนั่นก็คือ Function นั่นเอง แล้วมันต่างจาก Sub ยังไงล่ะ? คำตอบคือ Function ต่างจาก sub ตรงที่สุดท้ายแล้วจะ ส่งค่าผลลัพธ์บางอย่างกลับออกมายังตัวแปร ที่ชื่อเดียวกับฟังก์ชั่น ด้วย พูดง่ายๆ Sub คือชุดคำสั่งที่ทำ Action ต่างๆ แล้วจบไป… แต่ Function ทำอะไรบางอย่าง เช่นคำนวณค่า แล้วส่งผลลัพธ์กลับมาไว้ในตัวแปร… ถ้าฟังแล้วยังดูงงๆ อีก ผมอยากให้นึกถึงฟังก์ชั่นที่เราใช้ในสูตร Excel ตามปกติครับ มันคือสิ่งเดียวกันเลย! เห็นมั้ยว่าการสร้างฟังก์ชั่นใช้เองไม่ยากเลย นี่แหละคือพลังของ VBA ล่ะ นี่ถ้าเอาไปใช้กับฟังก์ชั่นซับซ้อนๆ จะเจ๋งขนาดไหน!! Concept 7 : ถ้าอยากให้ VBA ทำงานตามเงื่อนไขทำไง? อย่างที่ผมบอกใน Concept 5 ไปว่า VBA จะทำงานทีละบรรทัด.. Loop : สามารถกำหนดให้ทำ จนกว่าเงื่อนไขจะเป็นจริง ไม่รู้จำนวนรอบที่แน่นอน เมื่อรู้คำสั่งที่จะใช้ควบคุม Code VBA ได้แล้ว เราก็สามารถที่จะใช้เทคนิค Macro Recorder เพื่อสร้าง Code ที่เป็นส่วนงานปฏิบัติการ จากนั้นค่อยเอา Code ที่เอาไว้ควบคุมงานไปครอบ เพียงเท่านี้เราก็สามารถสร้างโปรแกรมที่ทรงพลังได้! Concept 8 : VBA เรียกใช้ฟังก์ชั่นของ Excel ได้ แถมควบคุมการทำงานนอก Excel ก็ยังได้!! จริงๆ แล้วใน VBA ก็มีฟังก์ชั่นพื้นฐานหลายๆ อย่างให้ใช้โดยไม่เกี่ยวกับฟังก์ชั่นใน Excel เลย! บางตัวก็คล้ายกับฟังก์ชั่นใน Excel บางตัวก็ไม่เหมือนเลย เช่น LEN นับจำนวนอักขระ , Cstr แปลงให้เป็น Text , Datepart ดึงเอาส่วนของวันที่ออกมา เช่น วัน เดือน ปี , Instr หาว่าอักขระที่ต้องการอยู่ตำแหน่งที่เท่าไหร่ของคำ เป็นต้น แม้จะมีฟังก์ชั่นให้เลือกเยอะแยะ แต่มันก็ไม่เยอะเท่าใน Excel แน่นอน! ข่าวดีคือ ใน VBA เราสามารถเรียกใช้ฟังก์ชั่นของ Excel ได้ด้วย โดยการใช้คำสั่งที่ชื่อว่า WorksheetFunction ในรูปแบบ Application. ชื่อฟังก์ชั่นในExcel argument เพียงเท่านี้คุณก็สามารถดึงพลังของ Excel มาช่วยใน VBA ได้อีกเยอะแยะ และนอกจากจะเอาพลังของฟังก์ชั่นใน Excel มาใช้ใน VBA ได้แล้ว เรายังสามารถใช้ VBA ควบคุมโปรแกรมอื่นๆ ได้ด้วย เช่น คุณสามารถสั่งให้ VBA ลบไฟล์ในเครื่องทิ้งได้เลยแบบไม่รู้เนื้อรู้ตัว น่ากลัวมาก! ซึ่งเมื่อแก้ไขข้อผิดพลาดได้แล้ว ก็สามารถลอง Run โปรแกรมใหม่ เพื่อตรวจดูว่าข้อผิดพลาดหายไปรึยัง? จริงๆ Concept หลักๆ ของ VBA ก็ไม่พ้น 9 ข้อข้างบนอย่างที่ผมบอกไปแหละครับ มีแค่นี้จริงๆ แต่การที่เราจะสร้างโปรแกรม VBA เจ๋งๆ ขึ้นมาได้นั้น มันขึ้นอยู่กับความคิดของเรามากกว่า ว่าจะแก้ปัญหาที่พบเจอด้วยวิธีไหนดี? บางทีเราแก้ปัญหาหนึ่งๆ ได้เช่นกัน แต่ใช้เวลารันนานมาก หรือไม่คงทนต่อการเปลี่ยนแปลง เช่น หากมีคนแทรกแถวปุ๊ป Code เราพังเลย แบบนี้เมื่อเรามีประสบการณ์มากขึ้น เราก็จะหาวิธีเขียนที่ดีขึ้น รันเร็วขึ้น ยืดหยุ่นมากขึ้นได้เรื่อยๆ เรียกได้ว่า เรียนรู้กันทั้งชีวิตก็คงไม่หมด เพราะถึงจะดีแล้ว.. ที่เราจะสามารถพัฒนาฝีมือ พัฒนางานของเราไปได้เรื่อยๆ ดังนั้นอย่าหยุดพัฒนาครับ ใครยังไม่ได้มีโอกาสลองใช้ VBA ก็เริ่มลองได้เลยครับ ไม่มีอะไรยากเกินความพยายาม! แต่ปัญหาติดอยู่อย่างเดียวครับ คือ พนักงานคนนี้ไม่เข้าใจในงานที่ทำแม้แต่น้อย คิดเองก็ไม่เป็น ทำตามคำสั่งได้อย่างเดียว แล้วคุณต้องบอกให้ละเอียดๆ เชื่อหรือไม่ว่าเกมส์ RPG ถูกสร้างได้ด้วย Microsoft Excel + VBA ล้วนๆ ด้วยฝีมือนักบัญชีชาวแคนาดา ชื่อว่า CARY WALKIN เค้าสามารถทำได้ครับ เกมส์นี้ชื่อว่า Arena.
การเขียนโปรแกรมให้ Excel ทำงานแบบอัตโนมัติด้วย VBA Visual Basic for Application เป็นหัวข้อใน Excel ที่มีคนอยากเรียนรู้เยอะมากที่สุดตลอดกาลลลลลเลยล่ะ. Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. ใน VBA เราไม่สามารถใส่คำสั่งโดยที่ไม่มีที่อยู่ได้ แปลว่าถึงมีอยู่คำสั่งเดียว เราก็ต้องเอาไว้ใน Sub อยู่ดี แต่ในความจริงแล้ว ยังมีชุดคำสั่งอีกแบบนอกจาก Sub นั่นก็คือ Function ซึ่งจะพูดถึงใน Concept ถัดไป Concept 5 : เราสร้างฟังก์ชั่นใช้เองใน Excel ได้ด้วย VBA อย่างที่ผมบอกว่านอกจาก Sub แล้ว ใน VBA เรายังมีชุดคำสั่งอีกประเภทนั่นก็คือ Function นั่นเอง แล้วมันต่างจาก Sub ยังไงล่ะ. ลดระยะเวลาในการทำงานซ้ำ ๆ ลง 2. วิธีก็มีหลากหลายครับ สำหรับคนที่รู้เรื่อง Excel น้อยหน่อย อาจถึงขนาดต้องหาว่าช่องไหนคือช่องล่าสุดที่ Copy ข้อมูลไปแล้ว ช่องไหนเป็นช่องล่าสุดในฐานข้อมูลที่กรอกข้อมูลไปแล้ว?.