วิธีสร้างมาโครหรือสคริปต์ VBA ใน Excel

Microsoft Excelช่วยให้ผู้ใช้สามารถกำหนดคุณลักษณะและคำสั่งต่างๆ ได้โดยอัตโนมัติโดยใช้มาโครและ การเขียนสคริปต์ Visual Basic for Applications ( VBA ) VBA เป็นภาษาโปรแกรมที่ Excel(VBA is the programming language Excel)ใช้เพื่อสร้างมาโคร นอกจากนี้ยังจะดำเนินการคำสั่งอัตโนมัติตามเงื่อนไขเฉพาะ

มาโครคือชุดคำสั่งที่บันทึกไว้ล่วงหน้า พวกมันทำงานโดยอัตโนมัติเมื่อได้รับคำสั่งเฉพาะ ถ้าคุณมีงานในMicrosoft Excelที่คุณทำซ้ำๆ เช่น การบัญชี การจัดการโครงการ หรือการจ่ายเงินเดือน การทำให้กระบวนการเหล่านี้เป็นอัตโนมัติจะช่วยประหยัดเวลาได้มาก

ภายใต้แท็บนักพัฒนาซอฟต์แวร์ บน (Developer)RibbonในExcelผู้ใช้สามารถบันทึกการคลิกเมาส์และการกดแป้น (มาโคร) อย่างไรก็ตาม ฟังก์ชันบางอย่างต้องการสคริปต์เชิงลึกมากกว่าที่แมโครสามารถให้ได้ นี่คือจุดที่ สคริปต์ VBAกลายเป็นประโยชน์อย่างมาก อนุญาตให้ผู้ใช้สร้างสคริปต์ที่ซับซ้อนมากขึ้น

ในบทความนี้เราจะอธิบายสิ่งต่อไปนี้:

  • การเปิดใช้งานสคริปต์และมาโคร
  • วิธีสร้างมาโครใน Excel
  • ตัวอย่างเฉพาะของมาโคร
  • เรียนรู้เพิ่มเติมเกี่ยวกับ VBA
  • สร้างปุ่ม(Button)เพื่อเริ่มต้นใช้งานVBA
  • เพิ่มรหัส(Add Code)เพื่อให้การทำงานของปุ่ม(Button Functionality)
  • มันทำงาน?

การเปิดใช้งานสคริปต์และมาโคร(Enabling Scripts & Macros)

ก่อนที่คุณจะสามารถสร้างมาโครหรือสคริปต์VBA ใน (VBA)Excelคุณต้องเปิดใช้งานแท็บนักพัฒนา(Developer ) บน เมนูRibbon แท็บนักพัฒนาไม่ได้เปิดใช้งานตามค่าเริ่มต้น (Developer)วิธีเปิดใช้งาน:

  • เปิดแผ่นงาน Excel
  • คลิกที่ไฟล์(File ) > ตัวเลือก( Options ) > กำหนด Ribbon เอง( Customize Ribbon.)

  • ทำเครื่องหมายในช่องถัดจากDeveloper

  • คลิกที่ แท็บ นักพัฒนา(Developer)จากเมนูRibbon

  • จากนั้น คลิกที่Macro Securityและทำเครื่องหมายที่ช่องถัดจากEnable all macros (ไม่แนะนำ เพราะโค้ดที่อาจเป็นอันตรายสามารถเรียกใช้ได้) (Enable all macros (not recommended; potentially dangerous code can run). )
  • จากนั้นคลิกตกลง( OK.)

สาเหตุที่มาโครไม่ถูกเปิดใช้งานโดยค่าเริ่มต้นและมาพร้อมกับคำเตือนเนื่องจากเป็นรหัสคอมพิวเตอร์ที่อาจมีมัลแวร์

ตรวจสอบ ให้(Make)แน่ใจว่าเอกสารนั้นมาจากแหล่งที่เชื่อถือได้ หากคุณกำลังทำงานในโครงการที่ใช้ร่วมกันในExcelและโปรแกรม อื่นๆ ของ Microsoft(Microsoft)

เมื่อคุณใช้สคริปต์และมาโครเสร็จแล้ว ให้ปิดใช้งานมาโครทั้งหมดเพื่อป้องกันไม่ให้โค้ดที่เป็นอันตรายติดไวรัสในเอกสารอื่นๆ

สร้างมาโครใน Excel(Create a Macro in Excel)

การดำเนินการทั้งหมดที่คุณทำในExcelขณะบันทึกแมโครจะถูกเพิ่มเข้าไป 

  • จากแท็บ Developer ให้คลิกที่Record Macro(Record Macro)

  • ป้อนชื่อมาโคร(Macro name)ปุ่มลัด(Shortcut key)และคำอธิบาย (Description. )ชื่อ มาโคร(Macro)ต้องขึ้นต้นด้วยตัวอักษรและไม่มีช่องว่าง ปุ่มลัดต้องเป็นตัวอักษร

ตัดสินใจเลือกตำแหน่งที่คุณต้องการจัดเก็บมาโครจากตัวเลือกต่อไปนี้:

  • Personal Macro Workbook : สิ่งนี้จะสร้าง เอกสาร Excel ที่ซ่อนอยู่ พร้อมมาโครที่เก็บไว้เพื่อใช้กับเอกสารExcel ใด ๆ(Excel)
  • สมุดงานใหม่(New Workbook) : จะสร้าง เอกสาร Excel ใหม่ เพื่อจัดเก็บมาโครที่สร้างขึ้น
  • สมุดงานนี้(This Workbook) : จะใช้กับเอกสารที่คุณกำลังแก้ไขเท่านั้น

เมื่อเสร็จแล้วคลิก  ตกลง(OK)

  • ดำเนิน(Run)การต่างๆ ที่คุณต้องการทำให้เป็นอัตโนมัติ เมื่อเสร็จแล้ว คลิกหยุดการ(Stop Recording)บันทึก 
  • เมื่อคุณต้องการเข้าถึงมาโครของคุณ ให้ใช้แป้นพิมพ์ลัดที่คุณให้มา

ตัวอย่างเฉพาะของมาโคร(Specific Example Of a Macro)

มาเริ่มกันด้วยสเปรดชีตง่ายๆ สำหรับลูกค้าและจำนวนเงินที่พวกเขาค้างชำระ เราจะเริ่มต้นด้วยการสร้างมาโครเพื่อจัดรูปแบบเวิร์กชีต

สมมติว่าคุณตัดสินใจว่าสเปรดชีตทั้งหมดควรใช้รูปแบบอื่น เช่น การใส่ชื่อและนามสกุลในคอลัมน์แยกกัน 

คุณสามารถเปลี่ยนแปลงสิ่งนี้ได้ด้วยตนเอง หรือคุณสามารถสร้างโปรแกรมโดยใช้แมโครเพื่อจัดรูปแบบให้ถูกต้องโดยอัตโนมัติสำหรับคุณ

บันทึกมาโคร(Record The Macro)

  • คลิกที่บันทึกมาโคร (Record Macro)เรียกมันว่าFormat_Customer_Dataแล้ว  คลิกตกลง(OK)
  • เพื่อให้ได้รูปแบบที่เราต้องการ เราจะเปลี่ยนชื่อคอลัมน์ แรก เป็น  ชื่อ(First Name)
  • จากนั้นแทรกคอลัมน์ถัดจาก A และเรียกมันว่า  นามสกุล(Last Name)
  • เน้น(Highlight)ชื่อทั้งหมดในคอลัมน์แรก (ซึ่งยังคงมีชื่อและนามสกุล) แล้วคลิกข้อมูล(Data)จากการนำทาง Ribbon
  • คลิกข้อความเป็น(Text to Columns)คอลัมน์

  • ติ๊กDelimited > Next > Separate by Space(Separate by Space) > Next > Finish ดูภาพหน้าจอด้านล่างและวิธีแยกชื่อและนามสกุลตามกระบวนการด้านบน

  • ในการจัดรูปแบบฟิลด์ครบกำหนดยอดดุล ให้เน้นจำนวนเงิน (Balance Due)คลิก(Click)ที่หน้าแรก(Home ) > การจัดรูปแบบตามเงื่อนไข(Conditional Formatting) > เน้นกฎ ของเซลล์(Highlight Cell Rules) > มากกว่า(Greater Than ) > 0

สิ่งนี้จะเน้นเซลล์ที่มียอดดุลครบกำหนด เราได้เพิ่มลูกค้าสองสามรายที่ไม่มียอดคงเหลือเนื่องจากเพื่ออธิบายการจัดรูปแบบเพิ่มเติม  

  • กลับไปที่Developerแล้วคลิกStop Recording

สมัคร The Macro(Apply The Macro)

เริ่มจากสเปรดชีตต้นฉบับก่อนที่เราจะบันทึกมาโครเพื่อจัดรูปแบบอย่างถูกต้อง คลิก(Click)ที่Macrosเลือกและเรียกใช้(Run)แมโครที่คุณเพิ่งสร้างขึ้น

เมื่อคุณเรียกใช้แมโคร การจัดรูปแบบทั้งหมดจะทำเพื่อคุณ มาโครที่เราเพิ่งสร้างขึ้นนี้ถูกเก็บไว้ในVisual Basic Editor(Visual Basic Editor)

ผู้ใช้สามารถเรียกใช้แมโครได้หลายวิธี อ่านเรียกใช้แมโคร(Run a macro)เพื่อเรียนรู้เพิ่มเติม  

เรียนรู้เพิ่มเติมเกี่ยวกับ VBA(Learn More About VBA)

หากต้องการเรียนรู้เกี่ยวกับ VBA ให้คลิกที่Macroจากแท็บDeveloper ค้นหาสิ่งที่คุณสร้างแล้วคลิกแก้ไข(Edit.)

โค้ดที่คุณเห็นในกล่องด้านบนคือสิ่งที่สร้างขึ้นเมื่อคุณบันทึกมาโครของคุณ 

นอกจากนี้ยังเป็นสิ่งที่คุณจะเรียกใช้เมื่อคุณต้องการจัดรูปแบบสเปรดชีตการชำระเงินของลูกค้ารายอื่นในลักษณะเดียวกัน

สร้างปุ่มเพื่อเริ่มต้นใช้งาน VBA(Create a Button To Get Started With VBA)

ใช้สเปรดชีตเดียวกันกับลูกค้าด้านบนและจำนวนเงินที่พวกเขาค้างชำระ มาสร้างตัวแปลงสกุลเงินกันเถอะ

  • หากต้องการแทรกองค์ประกอบปุ่ม ให้ไปที่แท็บ  นักพัฒนา(Developer )
  • เลือกปุ่มคำสั่ง ActiveX(ActiveX Command Button )จากดรอปดาวน์ถัดจากแทรก(Insert)ในส่วนการ(.)ควบคุม(Controls)

  • ลาก(Drag)ปุ่มไปที่ใดก็ได้บนสเปรดชีต เพื่อให้คุณสามารถเข้าถึงได้ง่ายและเปลี่ยนแปลงในภายหลังหากต้องการ

  • หากต้องการแนบโค้ด ให้คลิกขวาที่ปุ่มและเลือกProperties เราจะเก็บNameเป็นCommandButtonและCaption to Convert (นี่คือข้อความปุ่ม)

เพิ่มรหัสเพื่อให้การทำงานของปุ่ม(Add Code To Give The Button Functionality)

การเข้ารหัส VBA(VBA)ไม่ได้เกิดขึ้นในอินเทอร์เฟซ ของ Excel มันทำในสภาพแวดล้อมที่แยกต่างหาก  

  • ไปที่ แท็บ นักพัฒนา(Developer)และตรวจสอบให้แน่ใจว่าโหมดการออกแบบ(Design Mode)เปิดใช้งานอยู่

  • ในการเข้าถึงรหัสของปุ่มที่เราเพิ่งสร้างขึ้น ให้คลิกขวาที่มันแล้วเลือกดูรหัส(View Code)

  • เมื่อดูโค้ดในภาพหน้าจอด้านล่าง สังเกตว่าจุดเริ่มต้น ( Private Sub ) และจุดสิ้นสุด ( End Sub ) ของโค้ดมีอยู่แล้ว

  • รหัสด้านล่างจะขับเคลื่อนขั้นตอนการแปลงสกุลเงิน

ActiveCell.Value = (ActiveCell * 1.28)

จุดประสงค์ของเราในส่วนนี้คือการแปลงสกุลเงินในสเปรดชีตของเรา สคริปต์ด้านบนแสดงอัตราแลกเปลี่ยนจากGBPเป็นUSD ค่าใหม่ของเซลล์จะเป็นค่าที่มีอยู่คูณด้วย 1.28

ภาพหน้าจอด้านล่างแสดงให้เห็นว่าโค้ดมีลักษณะอย่างไรใน หน้าต่าง VBAหลังจากที่คุณแทรก โค้ด

  • ไปที่ไฟล์(File )ในการนำทางด้านบน และคลิกที่ ปิดและกลับสู่ Microsoft Excel(click on Close and Return to Microsoft Excel)เพื่อกลับไปยังอินเทอร์เฟซ หลักของ Excel

มันทำงาน?(Did It Work?)

ก่อนที่คุณจะสามารถทดสอบโค้ดของคุณได้ คุณต้องปิด การใช้งาน โหมดการออกแบบ(Design Mode) ก่อน (คลิกที่มัน) เพื่อหลีกเลี่ยงการแก้ไขเพิ่มเติมและให้การทำงานของปุ่ม

  • พิมพ์(Type)ตัวเลขใดๆ ลงในสเปรดชีตของคุณ แล้วคลิกปุ่มแปลง (Convert)หากค่าของตัวเลขของคุณเพิ่มขึ้นประมาณหนึ่งในสี่ก็ใช้ได้

สำหรับตัวอย่างนี้ ฉันใส่ตัวเลข 4 ลงในเซลล์ หลังจากคลิกแปลง(Convert)ตัวเลขจะเปลี่ยนเป็น 5.12 เนื่องจาก 4 คูณ 1.28 คือ 5.12 รหัสจึงถูกดำเนินการอย่างถูกต้อง

เมื่อคุณเข้าใจวิธีการสร้างมาโครหรือสคริปต์ในExcelแล้ว คุณสามารถใช้มันเพื่อทำให้การกระทำต่างๆ ใน​​Excel เป็นไปโดย อัตโนมัติ



About the author

ฉันเป็นนักพัฒนาซอฟต์แวร์ฟรีแวร์และเป็นผู้ให้การสนับสนุน Windows Vista/7 ฉันได้เขียนบทความหลายร้อยบทความเกี่ยวกับหัวข้อต่างๆ ที่เกี่ยวข้องกับระบบปฏิบัติการ รวมถึงคำแนะนำและเคล็ดลับ คู่มือการซ่อม และแนวทางปฏิบัติที่ดีที่สุด ฉันยังเสนอบริการให้คำปรึกษาเกี่ยวกับสำนักงานผ่านทางบริษัท Help Desk Services ของฉัน ฉันมีความเข้าใจอย่างลึกซึ้งเกี่ยวกับวิธีการทำงานของ Office 365 ฟีเจอร์ และวิธีใช้งานอย่างมีประสิทธิภาพสูงสุด



Related posts