บทช่วยสอนแมโคร Excel VBA สำหรับผู้เริ่มต้นด้วยตัวอย่าง

  • แบ่งปันสิ่งนี้
Michael Brown

สารบัญ

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

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

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

    มาโครใน Excel คืออะไร

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

    โดยปกติแล้ว มาโครจะใช้เพื่อทำให้งานซ้ำๆ และกิจวัตรประจำวันเป็นแบบอัตโนมัติ นักพัฒนา VBA ที่มีทักษะสามารถเขียนมาโครที่ซับซ้อนจริงๆ ซึ่งดีกว่าการลดจำนวนการกดแป้นพิมพ์

    บ่อยครั้งที่คุณอาจได้ยินคนพูดถึง "มาโคร"ทำตามขั้นตอนเหล่านี้:

    1. เปิดสมุดงานที่คุณต้องการนำเข้าแมโคร
    2. เปิดตัวแก้ไข Visual Basic
    3. ใน Project Explorer ให้คลิกขวา ชื่อโครงการ และเลือก นำเข้าไฟล์ .
    4. นำทางไปยังไฟล์ .bas และคลิก เปิด .

    ตัวอย่างแมโคร Excel

    หนึ่งในวิธีที่ดีที่สุดในการเรียนรู้ Excel VBA คือการสำรวจตัวอย่างโค้ด ด้านล่างนี้คุณจะพบตัวอย่างโค้ด VBA ง่ายๆ ที่ทำให้การทำงานพื้นฐานบางอย่างเป็นไปโดยอัตโนมัติ แน่นอนว่าตัวอย่างเหล่านี้ไม่ได้สอนการเขียนโค้ดให้กับคุณ เพราะมีแบบฝึกสอน VBA ระดับมืออาชีพหลายร้อยแบบ เราแค่ต้องการแสดงให้เห็นคุณลักษณะทั่วไปบางประการของ VBA ซึ่งหวังว่าจะทำให้ปรัชญาของ VBA เป็นที่คุ้นเคยมากขึ้นสำหรับคุณ

    ยกเลิกการซ่อนแผ่นงานทั้งหมดในสมุดงาน

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

    Sub Unhide_All_Sheets() Dim wks As Worksheet For Each wks In ActiveWorkbook.Worksheets wks.Visible = xlSheetVisible สัปดาห์ถัดไป จบย่อย

    ซ่อนแผ่นงานที่ใช้งานอยู่หรือซ่อนไว้มาก

    หากต้องการจัดการแผ่นงานที่ใช้งานอยู่ ให้ใช้วัตถุ ActiveSheet แมโครตัวอย่างนี้เปลี่ยนคุณสมบัติ มองเห็นได้ ของแผ่นงานที่ใช้งานอยู่เป็น xlSheetHidden เพื่อซ่อน ถึงทำให้แผ่นงานซ่อนอยู่มาก ตั้งค่าคุณสมบัติ Visible เป็น xlSheetVeryHidden .

    Sub Hide_Active_Sheet() ActiveSheet.Visible = xlSheetHidden End Sub

    ยกเลิกการผสานเซลล์ที่ผสานทั้งหมดในช่วงที่เลือก

    ถ้าคุณต้องการดำเนินการบางอย่างในช่วงมากกว่าเวิร์กชีตทั้งหมด ให้ใช้วัตถุ การเลือก ตัวอย่างเช่น โค้ดด้านล่างจะยกเลิกการผสานเซลล์ที่ผสานทั้งหมดในช่วงที่เลือกในคราวเดียว

    Sub Unmerge_Cells() Selection.Cells.UnMerge End Sub

    แสดงกล่องข้อความ

    เพื่อแสดง ข้อความบางอย่างถึงผู้ใช้ของคุณ ใช้ฟังก์ชัน MsgBox ต่อไปนี้คือตัวอย่างของมาโครในรูปแบบที่ง่ายที่สุด:

    Sub Show_Message() MsgBox ( "Hello World!" ) End Sub

    ในมาโครในชีวิตจริง กล่องข้อความมักจะใช้เพื่อจุดประสงค์ในการให้ข้อมูลหรือการยืนยัน ตัวอย่างเช่น ก่อนดำเนินการ (ยกเลิกการผสานเซลล์ในกรณีของเรา) คุณแสดงกล่องข้อความ ใช่/ไม่ใช่ หากผู้ใช้คลิก "ใช่" เซลล์ที่เลือกจะถูกยกเลิกการผสาน

    Sub Unmerge_Selected_Cells() Dim Answer As String Answer = MsgBox( "คุณแน่ใจหรือว่าต้องการยกเลิกการผสานเซลล์เหล่านี้" , vbQuestion + vbYesNo, "Unmerge Cells" ) ถ้าคำตอบ = vb ใช่ จากนั้น Selection.Cells.UnMerge สิ้นสุด ถ้าสิ้นสุดย่อย

    หากต้องการทดสอบโค้ด ให้เลือกช่วงตั้งแต่หนึ่งช่วงขึ้นไปที่มีเซลล์ที่ผสานแล้วเรียกใช้แมโคร ข้อความต่อไปนี้จะปรากฏขึ้น:

    ด้านล่างนี้คือลิงก์ไปยังมาโครที่ซับซ้อนมากขึ้นซึ่งจะทำให้ความท้าทายและเวลา-ใช้งานมาก:

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

    วิธีป้องกันมาโคร Excel

    หากคุณต้องการป้องกันไม่ให้ผู้อื่นดู แก้ไข หรือดำเนินการมาโครของคุณ คุณสามารถป้องกันได้ด้วยรหัสผ่าน

    ล็อกแมโครสำหรับการดู

    เพื่อป้องกันรหัส VBA ของคุณจากการดูและแก้ไขโดยไม่ได้รับอนุญาต ให้ทำดังต่อไปนี้:

    1. เปิด VBA ตัวแก้ไข
    2. ใน Project Explorer คลิกขวาที่โปรเจ็กต์ที่คุณต้องการล็อก แล้วเลือก VBAProject Properties...
    3. ใน Project Properties กล่องโต้ตอบ บนแท็บ การป้องกัน ให้เลือก ล็อกโครงการสำหรับการดู กล่อง ป้อนรหัสผ่านสองครั้ง และคลิก ตกลง .
    4. บันทึก ปิด และเปิดไฟล์ Excel ของคุณใหม่

    เมื่อคุณพยายามดูรหัสในตัวแก้ไข Visual Basic กล่องโต้ตอบต่อไปนี้จะปรากฏขึ้น พิมพ์รหัสผ่านและคลิกตกลง

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

    หมายเหตุ วิธีนี้ป้องกันรหัสจากการดูและแก้ไข แต่ไม่ได้ป้องกันไม่ให้ดำเนินการ

    มาโครป้องกันด้วยรหัสผ่านไม่ให้ทำงาน

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

    Sub Password_Protect() Dim รหัสผ่าน As Variant password = Application.InputBox( "Please enter Password", "Password Protected Macro" ) เลือกรหัสผ่าน Case Is = False 'ไม่ต้องทำอะไร Case Is = "password" 'รหัสของคุณที่นี่ Case Else MsgBox "รหัสผ่านไม่ถูกต้อง" End เลือก End Sub

    มาโครใช้ฟังก์ชัน InputBox เพื่อให้ผู้ใช้ป้อนรหัสผ่าน:

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

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

    เคล็ดลับมาโครของ Excel

    มือโปรของ Excel VBA ได้คิดค้นกลเม็ดแยบยลมากมายเพื่อทำให้มาโครของพวกเขามีประสิทธิภาพมากขึ้น ด้านล่างฉันจะแบ่งปันสองสามรายการโปรดของฉัน

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

    บรรทัดต่อไปนี้จะถูกเพิ่มที่จุดเริ่มต้นของโค้ดของคุณ (หลังบรรทัดที่ขึ้นต้นด้วย Dim หรือหลัง Sub บรรทัด):

    Application.ScreenUpdating = False Application.Calculation = xlCalculationManual

    บรรทัดต่อไปนี้จะถูกเพิ่มที่ส่วนท้ายของรหัสของคุณ (ก่อน สิ้นสุดย่อย ):

    Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic

    วิธีแบ่งโค้ด VBA ออกเป็นหลายบรรทัด

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

    หากต้องการแยกคำสั่งแบบยาวออกเป็นหลายบรรทัด ให้พิมพ์ ช่องว่าง ตามด้วย ขีดล่าง (_) ณ จุดที่คุณต้องการตัดบรรทัด ใน VBA สิ่งนี้เรียกว่า อักขระความต่อเนื่องของบรรทัด

    หากต้องการดำเนินการต่อโค้ดในบรรทัดถัดไปอย่างถูกต้อง โปรดปฏิบัติตามกฎเหล่านี้:

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

    ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแบ่งคำสั่งออกเป็นสองบรรทัด:

    Answer = MsgBox( "คุณแน่ใจหรือว่าต้องการยกเลิกการผสานเซลล์เหล่านี้" , _ vbQuestion + vbYesNo, "Unmerge Cells" )

    วิธีการ ทำให้แมโครสามารถเข้าถึงได้จากสมุดงานใดก็ได้

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

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

    วิธีเลิกทำแมโครแอคชัน

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

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

    วิธีที่ง่ายกว่าคือการบันทึกสมุดงานที่ใช้งานอยู่จากภายในโค้ดของมาโคร สำหรับสิ่งนี้ เพียงเพิ่มบรรทัดด้านล่างก่อนที่จะปล่อยให้มาโครของคุณทำสิ่งอื่น:

    ActiveWorkbook.Save

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

    วิธีนี้ หากคุณ (หรือผู้ใช้ของคุณ) ไม่พอใจกับผลลัพธ์ คุณสามารถปิดแล้วเปิดเวิร์กบุ๊กใหม่อีกครั้ง

    หยุดไม่ให้ Excel แสดงคำเตือนด้านความปลอดภัย เมื่อไม่มีมาโครในสมุดงาน

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

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

    • สำหรับ ThisWorkbook และสำหรับแต่ละชีต ให้เปิดหน้าต่างรหัส กด Ctrl + A เพื่อเลือกรหัสทั้งหมดและลบออก (แม้ว่าหน้าต่างรหัสจะดูว่างเปล่า).
    • ลบ UserForms และ Class Modules ใดๆ ที่สมุดงานมี

    นั่นคือวิธีที่คุณสร้างและใช้แมโคร VBA ใน Excel ฉันขอขอบคุณที่อ่านและหวังว่าจะได้พบคุณอีกครั้งในบล็อกของเราในสัปดาห์หน้า!

    เป็น "VBA" ในทางเทคนิค มีความแตกต่าง: มาโครเป็นส่วนหนึ่งของโค้ด ในขณะที่ Visual Basic for Applications (VBA) เป็นภาษาโปรแกรมที่สร้างขึ้นโดย Microsoft เพื่อเขียนมาโคร

    เหตุใดจึงต้องใช้มาโคร Excel

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

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

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

    วิธีสร้างมาโครใน Excel

    มีสองวิธีในการสร้างมาโครใน Excel โดยใช้ Macro Recorder และ Visual Basic Editor

    เคล็ดลับ ภายใน Excel การดำเนินการส่วนใหญ่ด้วยมาโครจะทำผ่านแท็บ นักพัฒนาซอฟต์แวร์ ดังนั้นอย่าลืมเพิ่มแท็บนักพัฒนาในแถบริบบิ้นของ Excel

    การบันทึกมาโคร

    แม้ว่าคุณจะไม่รู้อะไรเลยเกี่ยวกับการเขียนโปรแกรมโดยทั่วไปและโดยเฉพาะอย่างยิ่ง VBA คุณก็สามารถทำให้งานบางอย่างของคุณเป็นอัตโนมัติได้ง่ายๆ เพียงแค่ให้ Excel บันทึกการกระทำของคุณเป็นมาโคร ขณะที่คุณกำลังดำเนินการตามขั้นตอน Excel จะเฝ้าดูและจดบันทึกการคลิกเมาส์และการกดแป้นพิมพ์ของคุณอย่างใกล้ชิดในภาษา VBA

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

    เมื่อต้องการเริ่มการบันทึก ให้คลิกปุ่ม บันทึกแมโคร บน นักพัฒนาซอฟต์แวร์ แท็บหรือแถบ สถานะ

    สำหรับข้อมูลโดยละเอียด โปรดดูวิธีการบันทึกแมโครใน Excel

    การเขียน แมโครใน Visual Basic Editor

    Visual Basic for Applications (VBA) Editor คือที่ที่ Microsoft Excel เก็บโค้ดของแมโครทั้งหมด ทั้งบันทึกและเขียนด้วยตนเอง

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

    ประการแรก กด Alt + F11 เพื่อเปิด Visual Basic Editor จากนั้น ให้แทรกโค้ดในสองขั้นตอนสั้นๆ เหล่านี้:

    1. ใน Project Explorer ทางด้านซ้าย ให้คลิกขวาที่สมุดงานเป้าหมาย แล้วคลิก แทรก > โมดูล .
    2. ในหน้าต่างโค้ดทางด้านขวา ให้วางโค้ด VBA

    เมื่อเสร็จแล้ว ให้กด F5 เพื่อเรียกใช้แมโคร

    สำหรับขั้นตอนโดยละเอียด โปรดดูวิธีแทรกโค้ด VBA ใน Excel

    วิธีเรียกใช้แมโครใน Excel

    มีหลายวิธีในการเริ่มแมโคร ใน Excel:

    • หากต้องการเรียกใช้แมโครจากเวิร์กชีต ให้คลิกปุ่ม มาโคร บนแท็บ นักพัฒนาซอฟต์แวร์ หรือกดปุ่มลัด Alt + F8
    • หากต้องการเรียกใช้แมโครจากตัวแก้ไข VBA ให้กดอย่างใดอย่างหนึ่ง:
      • F5 เพื่อเรียกใช้โค้ดทั้งหมด
      • F8 เพื่ออ่านโค้ดทีละบรรทัด ซึ่งมีประโยชน์มากสำหรับการทดสอบและแก้ไขปัญหา

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

    วิธีเปิดใช้งานมาโครใน Excel

    เนื่องจากเหตุผลด้านความปลอดภัย มาโครทั้งหมดใน Excel จะถูกปิดใช้งานตามค่าเริ่มต้น ดังนั้น หากต้องการใช้ความมหัศจรรย์ของโค้ด VBA เพื่อประโยชน์ของคุณ คุณต้องรู้วิธีเปิดใช้งาน

    วิธีที่ง่ายที่สุดในการเปิดใช้มาโครสำหรับเวิร์กบุ๊กหนึ่งๆ คือการคลิก เปิดใช้งานเนื้อหา ปุ่มในแถบเตือนความปลอดภัยสีเหลืองที่ปรากฏที่ด้านบนของแผ่นงานเมื่อคุณเปิดสมุดงานที่มีมาโครเป็นครั้งแรก

    หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับความปลอดภัยของมาโคร โปรดดูวิธีการ เพื่อเปิดและปิดใช้งานแมโครใน Excel

    วิธีเปลี่ยนการตั้งค่าแมโคร

    Microsoft Excel กำหนดว่าจะอนุญาตหรือไม่อนุญาตรหัส VBA ที่จะดำเนินการในสมุดงานของคุณตามการตั้งค่าแมโครที่เลือกใน ศูนย์ความเชื่อถือ .

    ต่อไปนี้เป็นขั้นตอนในการเข้าถึงการตั้งค่าแมโครของ Excel และเปลี่ยนการตั้งค่าหากจำเป็น:

    1. ไปที่แท็บ ไฟล์ และเลือก ตัวเลือก .
    2. ในบานหน้าต่างด้านซ้าย เลือก ศูนย์ความเชื่อถือ จากนั้นคลิก การตั้งค่าศูนย์ความเชื่อถือ… .
    3. ในกล่องโต้ตอบ ศูนย์ความเชื่อถือ ให้คลิก การตั้งค่ามาโคร ทางด้านซ้าย เลือกตัวเลือกที่ต้องการ แล้วคลิก ตกลง .

    ในภาพหน้าจอด้านล่าง การตั้งค่ามาโครเริ่มต้นถูกเลือกไว้:

    สำหรับข้อมูลเพิ่มเติม โปรดดูคำอธิบายเกี่ยวกับการตั้งค่ามาโครของ Excel

    วิธีดู แก้ไข และดีบัก VBAโค้ดใน Excel

    การเปลี่ยนแปลงโค้ดของแมโคร ไม่ว่าจะสร้างโดยอัตโนมัติโดยตัวบันทึกแมโครของ Excel หรือเขียนโดยคุณ จะกระทำใน Visual Basic Editor

    ในการเปิด VB ตัวแก้ไข ให้กด Alt + F11 หรือคลิกปุ่ม Visual Basic บนแท็บ นักพัฒนาซอฟต์แวร์

    ถึง ดู และแก้ไข โค้ดของแมโครเฉพาะ ใน Project Explorer ทางด้านซ้าย ให้คลิกสองครั้งที่โมดูลที่มีอยู่ หรือคลิกขวาที่โมดูลแล้วเลือก ดูโค้ด . ซึ่งจะเปิดหน้าต่างโค้ดซึ่งคุณสามารถแก้ไขโค้ดได้

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

    วิธีคัดลอกมาโครไปยังสมุดงานอื่น

    คุณสร้างมาโครในสมุดงานเล่มหนึ่งและตอนนี้ต้องการใช้ซ้ำในไฟล์อื่นด้วยหรือไม่ มีสองวิธีในการคัดลอกมาโครใน Excel:

    คัดลอกโมดูลที่มีมาโคร

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

    1. เปิดสมุดงานทั้งสองเล่ม - อันที่มีมาโครและอันที่คุณต้องการคัดลอก
    2. เปิดตัวแก้ไข Visual Basic
    3. ในบานหน้าต่าง Project Explorer ให้ค้นหาโมดูลที่มีมาโครและลากไปยังสมุดงานปลายทาง

    ในภาพหน้าจอด้านล่าง เรากำลังคัดลอก Module1 จาก Book1 ถึง Book2 :

    คัดลอกซอร์สโค้ดของมาโคร

    หากโมดูลมีมาโครต่างๆ จำนวนมากในขณะที่คุณต้องการเพียงตัวเดียว ให้คัดลอกเฉพาะโค้ดของมาโครนั้นๆ มีวิธีการดังนี้:

    1. เปิดสมุดงานทั้งสองเล่ม
    2. เปิดตัวแก้ไข Visual Basic
    3. ในบานหน้าต่าง Project Explorer ให้คลิกสองครั้งที่โมดูลที่มีมาโครที่คุณ ' ต้องการคัดลอกเพื่อเปิดหน้าต่างโค้ด
    4. ในหน้าต่างโค้ด ค้นหามาโครเป้าหมาย เลือกโค้ด (ขึ้นต้นด้วย ย่อย และลงท้ายด้วย จบย่อย ) แล้วกด Ctrl + C เพื่อคัดลอก
    5. ใน Project Explorer ให้ค้นหาสมุดงานปลายทาง แล้วแทรกโมดูลใหม่เข้าไป (คลิกขวาที่สมุดงานแล้วคลิก แทรก > โมดูล ) หรือดับเบิลคลิกที่โมดูลที่มีอยู่เพื่อเปิดหน้าต่างโค้ด
    6. ในหน้าต่างโค้ดของโมดูลปลายทาง ให้กด Ctrl + V เพื่อวางโค้ด ถ้าโมดูลมีรหัสอยู่แล้ว ให้เลื่อนลงไปที่บรรทัดรหัสสุดท้าย แล้ววางแมโครที่คัดลอก

    วิธีลบมาโครใน Excel

    หากคุณไม่ต้องการโค้ด VBA อีกต่อไป คุณสามารถลบออกได้โดยใช้กล่องโต้ตอบ แมโคร หรือ Visual Basic Editor

    การลบมาโครจากสมุดงาน

    หากต้องการลบมาโครโดยตรงจากสมุดงาน Excel ให้ทำตามขั้นตอนเหล่านี้:

    1. ในแท็บ นักพัฒนาซอฟต์แวร์ ใน รหัส กลุ่ม คลิกปุ่ม มาโคร หรือกดปุ่มลัด Alt + F8
    2. ในกล่องโต้ตอบ มาโคร เลือกมาโครที่คุณต้องการลบและ คลิก ลบ .

    เคล็ดลับ:

    • หากต้องการดูมาโครทั้งหมดในไฟล์ที่เปิดอยู่ทั้งหมด ให้เลือก สมุดงานที่เปิดอยู่ทั้งหมด จาก มาโครใน รายการแบบเลื่อนลง
    • หากต้องการลบมาโครในสมุดงานมาโครส่วนบุคคล คุณต้องยกเลิกการซ่อน Personal.xlsb ก่อน

    การลบแมโครผ่าน Visual Basic Editor

    ข้อดีของการใช้ VBA Editor คือช่วยให้คุณสามารถลบทั้งโมดูลที่มีมาโครทั้งหมดได้ในคราวเดียว นอกจากนี้ ตัวแก้ไข VBA ยังอนุญาตให้ลบมาโครในสมุดงานมาโครส่วนบุคคลโดยไม่ต้องเลิกซ่อน

    หากต้องการ ลบโมดูลอย่างถาวร ให้ทำตามขั้นตอนเหล่านี้:

    1. ใน Project Explorer คลิกขวาที่โมดูลแล้วเลือก ลบ จากเมนูบริบท
    2. เมื่อถูกถามว่าคุณต้องการส่งออกโมดูลก่อนที่จะลบหรือไม่ ให้คลิก ไม่ .

    หากต้องการ ลบแมโครเฉพาะ เพียงลบซอร์สโค้ดโดยตรงในหน้าต่างโค้ด หรือคุณสามารถลบมาโครได้โดยใช้เมนู เครื่องมือ ของตัวแก้ไข VBA:

    1. จากเมนู เครื่องมือ เลือก มาโคร . เดอะ มาโคร กล่องโต้ตอบจะปรากฏขึ้น
    2. ในรายการแบบเลื่อนลง มาโคร ใน เลือกโครงการที่มีมาโครที่ไม่ต้องการ
    3. ในช่อง ชื่อมาโคร เลือกมาโคร
    4. คลิกปุ่ม ลบ

    วิธีบันทึกมาโครใน Excel

    หากต้องการบันทึกมาโครใน Excel ไม่ว่าจะบันทึกหรือเขียนด้วยตนเอง เพียงบันทึกสมุดงานเป็นแบบเปิดใช้งานมาโคร (*.xlms) มีวิธีการดังนี้:

    1. ในไฟล์ที่มีมาโคร ให้คลิกปุ่ม บันทึก หรือกด Ctrl + S
    2. ปุ่ม บันทึกเป็น กล่องโต้ตอบจะปรากฏขึ้น เลือก สมุดงานที่เปิดใช้งานมาโคร Excel (*.xlsm) จากรายการแบบเลื่อนลง บันทึกเป็นประเภท และคลิก บันทึก :

    วิธีส่งออกและนำเข้ามาโครใน Excel

    หากคุณต้องการแบ่งปันรหัส VBA กับผู้อื่นหรือย้ายไปยังคอมพิวเตอร์เครื่องอื่น วิธีที่เร็วที่สุดคือการส่งออก ทั้งโมดูลเป็นไฟล์ .bas

    ส่งออกมาโคร

    ในการส่งออกรหัส VBA ของคุณ นี่คือสิ่งที่คุณต้องทำ:

    1. เปิดสมุดงานที่มี มาโคร
    2. กด Alt + F11 เพื่อเปิด Visual Basic Editor
    3. ใน Project Explorer ให้คลิกขวาที่โมดูลที่มีมาโครและเลือก ส่งออกไฟล์ .
    4. นำทางไปยังโฟลเดอร์ที่คุณต้องการบันทึกไฟล์ที่ส่งออก ตั้งชื่อไฟล์ และคลิก บันทึก

    การนำเข้ามาโคร

    โปรดนำเข้าไฟล์ .bas ที่มีรหัส VBA ลงใน Excel ของคุณ

    Michael Brown เป็นผู้ที่ชื่นชอบเทคโนโลยีโดยเฉพาะและมีความหลงใหลในการทำให้กระบวนการที่ซับซ้อนง่ายขึ้นโดยใช้เครื่องมือซอฟต์แวร์ ด้วยประสบการณ์กว่าทศวรรษในอุตสาหกรรมเทคโนโลยี เขาได้ฝึกฝนทักษะของเขาใน Microsoft Excel และ Outlook รวมถึง Google ชีตและเอกสาร บล็อกของ Michael ทุ่มเทให้กับการแบ่งปันความรู้และความเชี่ยวชาญของเขากับผู้อื่น โดยให้คำแนะนำและแบบฝึกหัดที่ทำตามได้ง่ายเพื่อปรับปรุงผลิตภาพและประสิทธิภาพ ไม่ว่าคุณจะเป็นมืออาชีพที่ช่ำชองหรือมือใหม่ บล็อกของ Michael นำเสนอข้อมูลเชิงลึกอันมีค่าและคำแนะนำที่เป็นประโยชน์สำหรับการใช้ประโยชน์สูงสุดจากเครื่องมือซอฟต์แวร์ที่จำเป็นเหล่านี้