การเขียนมาโครของ Excel มาโครใน VBA Excel – สร้างเอกสารโดยใช้เทมเพลต การสร้างมาโครและการลบออก

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

แท็บนักพัฒนา

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

เอ็กเซล 2010-2016

ไปตามเส้นทาง: ไฟล์ - ตัวเลือก - ปรับแต่ง Ribbon ในส่วน "ปรับแต่ง Ribbon" ทางด้านขวาในรายการ "แท็บหลัก" เลือกช่องทำเครื่องหมาย "นักพัฒนา" และคลิกปุ่ม "ตกลง"

เอ็กเซล 2007

ไปตามเส้นทาง: ไอคอน "Microsoft Office" - ตัวเลือก Excel - หมวดหมู่ "พื้นฐาน" ในหมวดหมู่ "พื้นฐาน" ทำเครื่องหมายในช่อง "แสดงแท็บนักพัฒนาบน Ribbon" แล้วคลิกปุ่ม "ตกลง"

เอ็กเซล 2000-2003

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

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

บันทึกแมโคร

เอ็กเซล 2007-2016

บน Ribbon ในแท็บนักพัฒนา ให้คลิกปุ่มบันทึกแมโคร

เอ็กเซล 2000-2003

ผ่านรายการเมนู "เครื่องมือ" - "มาโคร" - "เริ่มการบันทึก"

หน้าต่างจะเปิดขึ้น:

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

แป้นพิมพ์ลัด:เพิ่มตัวอักษรหากคุณต้องการเรียกใช้แมโครด้วยแป้นพิมพ์ลัด Ctrl+"ตัวอักษร"- ไม่ว่าคุณจะป้อนตัวอักษรในรูปแบบใดก็ตาม (เช่น “th” หรือ “q”) มาโครจะทำงานในรูปแบบนั้น หากป้อนตัวอักษรเป็นตัวพิมพ์ใหญ่ (“Y” หรือ “Q”) ให้ใช้แป้นพิมพ์ลัดเพื่อเรียกใช้แมโคร Ctrl+Shift+“ตัวอักษร”.

  • "หนังสือเล่มนี้"- มาโครจะถูกบันทึกลงในหนังสือที่ใช้เปิดเครื่องบันทึก (กดปุ่ม "บันทึกมาโคร")
  • "หนังสือเล่มใหม่"- เวิร์กบุ๊กใหม่จะเปิดขึ้นและแมโครจะถูกบันทึกไว้ในนั้น
  • “สมุดมาโครส่วนตัว”- มาโครจะถูกบันทึกไว้และจะพร้อมใช้งานจากสมุดงาน Excel ที่เปิดอยู่ทั้งหมด

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

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

รายการมาโคร

หน้าต่างที่มีรายการมาโครจะเปิดขึ้นใน Excel ทุกเวอร์ชันโดยคลิกปุ่ม "มาโคร" ดูเหมือนว่านี้:


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

กำลังเรียกใช้แมโคร

คุณสามารถเรียกใช้แมโครที่บันทึกไว้ได้ด้วยวิธีต่อไปนี้:

  • แป้นพิมพ์ลัดที่ระบุในพารามิเตอร์มาโคร
  • คลิกปุ่ม "เรียกใช้" จากหน้าต่างรายการมาโคร
  • ใช้ปุ่ม “Run Sub” หรือปุ่ม “F5” จากโปรแกรมแก้ไข VBA
  • ปุ่มที่เพิ่มลงในแผ่นงาน Excel จากส่วนการควบคุมแบบฟอร์มและกำหนดแมโครให้ทำงาน

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

ตัวอย่างการบันทึกมาโครอย่างง่าย

ทำตามขั้นตอนเหล่านี้:

เอ็กเซล 2007-2016

  1. เปิดเวิร์กบุ๊ก Excel หรือสร้างเวิร์กบุ๊กใหม่แล้วบันทึกเป็นเวิร์กบุ๊กที่เปิดใช้งานแมโคร (.xlsm)
  2. บนแท็บนักพัฒนา ให้คลิกปุ่มบันทึกแมโคร
  3. ไปที่แท็บ "หน้าแรก" และเลือกสีเติมเซลล์ใดก็ได้
  4. คลิกปุ่มหยุดการบันทึก

เอ็กเซล 2000-2003

  1. เปิดสมุดงาน Excel หรือสร้างสมุดงานใหม่และบันทึกด้วยนามสกุลเริ่มต้น (.xls)
  2. เปิดใช้งานการบันทึกมาโครโดยไปที่รายการเมนู "เครื่องมือ" - "มาโคร" - "เริ่มการบันทึก"
  3. ในหน้าต่าง Record Macro คลิก OK โดยคงการตั้งค่าเริ่มต้นไว้
  4. บนแถบเครื่องมือ ให้เลือกสีเติมเซลล์ใดก็ได้
  5. คลิกปุ่มหยุดการบันทึก

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

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

Sub Macro1() " " Macro1 Macro " " พร้อม Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 5296274 .TintAndShade = 0 .PatternTintAndShade = 0 สิ้นสุดด้วย End Sub

หมายเลข (5296274) ในตัวอย่างของคุณจะแตกต่างกันขึ้นอยู่กับ .

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

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

Sub Macro2() Selection.Interior.Color = 5296274 สิ้นสุดย่อย

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

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

การกำหนดแมโครให้กับปุ่ม

ตอนนี้เรามากำหนดมาโครที่บันทึกไว้ (อย่างใดอย่างหนึ่ง) ให้กับปุ่มที่เพิ่มลงในแผ่นงาน Excel จากส่วนการควบคุมแบบฟอร์ม:

เอ็กเซล 2007-2016

  1. บนแท็บ "นักพัฒนา" คลิกปุ่ม "แทรก" และในส่วน "การควบคุมแบบฟอร์ม" คลิกที่ภาพปุ่ม
  2. เลื่อนเคอร์เซอร์ไปที่พื้นที่ตารางของแผ่นงานเคอร์เซอร์จะเปลี่ยนเป็นรูปกากบาทแล้วคลิกปุ่มซ้ายของเมาส์

เอ็กเซล 2000-2003

    1. แสดงแถบเครื่องมือ "แบบฟอร์ม" โดยไปที่รายการเมนู "มุมมอง" - "แถบเครื่องมือ" - "แบบฟอร์ม"
    2. คลิกที่ปุ่มบนแถบเครื่องมือ "แบบฟอร์ม" จากนั้นเลื่อนเคอร์เซอร์ไปที่ส่วนตารางของแผ่นงานกดปุ่มซ้ายของเมาส์และวาดรูปสี่เหลี่ยมผืนผ้า (โครงร่างปุ่ม) ตามขนาดที่ต้องการโดยไม่ต้องปล่อยจากนั้นปล่อยเมาส์ ปุ่ม.
    3. ในหน้าต่าง "กำหนดแมโครให้กับวัตถุ" ที่เปิดขึ้น ให้เลือกมาโครใหม่ตัวใดตัวหนึ่งแล้วคลิกตกลง หากคุณคลิกยกเลิก ปุ่มใหม่จะถูกสร้างขึ้นโดยไม่มีการกำหนดมาโคร สามารถกำหนดได้ในภายหลังโดยคลิกขวาที่มันแล้วเลือก "กำหนดมาโคร..." จากเมนูบริบท

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

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

รหัสการล้างพื้นหลังเวอร์ชันย่อจะมีลักษณะดังนี้:

Sub Macro3() Selection.Interior.Pattern = xlNone End Sub

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

ความสามารถของ Excel ไม่ได้จำกัดอยู่เพียงชุดฟังก์ชันที่มีอยู่แล้วภายใน ด้วยการเขียนมาโคร คุณสามารถสร้างฟังก์ชันของคุณเองเพื่อทำงานที่ไม่ได้มาตรฐานใน Excel ได้

ตัวอย่างเช่น คุณสามารถแนบมาโครที่เขียนเองกับไอคอนและแสดงบน Ribbon ของเมนูได้ หรือคุณสามารถสร้างฟังก์ชันที่ผู้ใช้กำหนด (UDF) และใช้ฟังก์ชันดังกล่าวได้เหมือนกับฟังก์ชันอื่นๆ ที่มีอยู่แล้วใน Excel

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

การตั้งค่าสิทธิ์ในการใช้มาโครใน Excel

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

ตัวแก้ไข Visual Basic

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

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

บทช่วยสอน Excel VBA

สำหรับผู้ที่เพิ่งเริ่มเชี่ยวชาญภาษาการเขียนโปรแกรม Excel VBA เรามีหลักสูตรเบื้องต้นสั้นๆ เกี่ยวกับ Visual Basic สำหรับแอปพลิเคชัน

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

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

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

ในตัวอย่างของเรา แน่นอนว่าเราจะใช้เทมเพลตง่ายๆ เพื่อให้ง่ายและเข้าใจได้ (เป็นตัวอย่างเท่านั้น) ในทางกลับกัน เทมเพลตของคุณจะมีความซับซ้อนมากขึ้นตามที่ฉันคิด

ฉันขอเตือนคุณว่าในไซต์นี้ได้มีการกล่าวถึงหัวข้อของ VBA Excel แล้ว เช่น ในเนื้อหา – การห้ามการเข้าถึงแผ่นงาน Excel โดยใช้รหัสผ่าน

มาเริ่มกันเลย!

การเขียนแมโครใน VBA Excel เพื่อสร้างเอกสาร

เราจะดำเนินงานของเราโดยใช้ตัวอย่างของ "บัตรพนักงานอิเล็กทรอนิกส์" (ฉันเพิ่งสร้างสิ่งนี้ขึ้นมา :) แม้ว่าอาจมีสิ่งนั้นอยู่จริงก็ตาม) เช่น เอกสารที่ใช้จัดเก็บข้อมูลส่วนบุคคลของพนักงานของบริษัทของคุณ ในรูปแบบเฉพาะ โดยเฉพาะใน Excel

บันทึก!เราจะเขียนโปรแกรมใน Excel 2010

และเริ่มต้นด้วยการนำเสนอข้อมูลเริ่มต้นเช่น ข้อมูลและเทมเพลต

ข้อมูล.

ลองเรียกชีตที่มีข้อมูลนี้ว่า "ข้อมูล"

ตัวอย่าง.

แผ่นงานที่มีเทมเพลตอยู่จะถูกเรียกว่า "เทมเพลต"

ทำได้ง่ายมาก เลือกเซลล์หรือช่วงที่ต้องการ จากนั้นคลิกขวาแล้วเลือก "กำหนดชื่อ" เขียนชื่อเซลล์แล้วคลิก "ตกลง"

ฉันตั้งชื่อฟิลด์ของฉันดังนี้:

  • ชื่อเต็ม – ฟิโอ;
  • № - หมายเลข;
  • ตำแหน่ง – dolgn;
  • ที่อยู่ที่อยู่อาศัย – ที่อยู่;
  • โทร. หมายเลขพนักงาน – โทรศัพท์;
  • แสดงความคิดเห็น – แสดงความคิดเห็น.

รหัสมาโครใน VBA Excel

หากต้องการเขียนโค้ดแมโคร ให้เปิดแท็บ "นักพัฒนา" บน Ribbon จากนั้นจึงเปิดมาโคร

บันทึก!ตามค่าเริ่มต้น แท็บนี้ใน Excel 2010 อาจไม่มีอยู่ หากต้องการแสดง ให้คลิกขวาที่ Ribbon แล้วเลือกรายการเมนู "กำหนด Ribbon เอง"

จากนั้น ในพื้นที่ด้านขวา ให้ทำเครื่องหมายที่ช่องถัดจาก “นักพัฒนา”

หลังจากนั้นแท็บนักพัฒนาซอฟต์แวร์จะปรากฏบน Ribbon

หลังจากนั้น หน้าต่างตัวแก้ไขโค้ดจะเปิดขึ้น ซึ่งเราจะเขียนโค้ด VBA ของเราจริงๆ ด้านล่างนี้เป็นโค้ด ฉันแสดงความคิดเห็นโดยละเอียดตามปกติ:

Sub Card() "Book NewBook ​​​​= "" " เส้นทางที่การ์ดของเราจะถูกเก็บไว้ " นั่นคือในโฟลเดอร์ที่เรียกใช้ไฟล์ที่มีมาโคร Path = ThisWorkbook.Path " เลือกแผ่นงานที่มีแผ่นข้อมูล ( "ข้อมูล") เลือก " มาเริ่มลูปกันเถอะ พูดวนซ้ำ 100,000 ครั้ง " เริ่มจากบรรทัดที่สอง โดยไม่คำนึงถึงส่วนหัว For i = 2 ถึง 100,000 " ให้ออกเมื่อชื่อหมด เช่น บรรทัด If Cells( i, 1).Value = "" จากนั้น i = 100000 Exit For End ถ้า "ชื่อของไฟล์การ์ด ให้เรียกมันด้วยนามสกุล Name_file = Path & "\" & Sheets("Data").Cells(i, 1 ).ค่า & ".xls" 'เลือกแผ่นงานด้วยเทมเพลตชีต( "เทมเพลต").เลือก " เรากำหนดค่าให้กับเซลล์ของเราตามชื่อที่เราระบุ ช่วง("fio").Value = แผ่นงาน ("ข้อมูล").เซลล์(i, 1).ค่า & " " & _ชีต("ข้อมูล ").เซลล์(i, 2).ค่า & " " & ชีต("ข้อมูล").เซลล์(i, 3 ).ช่วงค่า("หมายเลข").ค่า = ชีต("ข้อมูล").เซลล์(i, 4).ช่วงค่า("ที่อยู่").ค่า = ชีต("ข้อมูล").เซลล์(i, 5) Value Range("dolgn").Value = Sheets("Data").Cells(i, 6) .Value Range("phone").Value = Sheets("Data").Cells(i, 7).Value Range ("ความคิดเห็น").Value = Sheets("Data").Cells(i, 8).Value " Copy all Cells.Select Selection.Copy" Создаем новую книгу или делаем ее активной If NewBook = "" Then Workbooks.Add NewBook = ActiveWorkbook.Name Else Workbooks(NewBook).Activate Cells(1, 1).Select End If " Вставляем данные в эту книгу Application.DisplayAlerts = False ActiveSheet.Paste Application.CutCopyMode = False " Сохраняем с нашим новым названием ActiveWorkbook.SaveAs Filename:= _ Name_file, FileFormat:=xlExcel8, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False NewBook = ActiveWorkbook.Name Application.DisplayAlerts = True " Снова активируем файл с макросом и выбираем лист Workbooks("Макрос.xls").Activate Sheets("Данные").Select " Переходим к следующей строке Next i " Закроем книгу Workbooks(NewBook).Close " Выведем сообщение об окончании MsgBox ("Выполнено!") End Sub !}

ตอนนี้สิ่งที่เหลืออยู่คือการเรียกใช้แมโครนี้ หากต้องการทำสิ่งนี้ ให้เปิดนักพัฒนา -> มาโคร -> เรียกใช้แท็บแมโครของเรา

สวัสดีตอนบ่าย

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

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

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

ดังนั้น มีสองวิธีในการสร้างแมโครใน Excel:

สร้างแมโครใน Excelโดยใช้เครื่องบันทึกมาโคร

ขั้นแรก เรามาทำความเข้าใจกันก่อนว่าเครื่องบันทึกแมโครคืออะไร และมาโครเกี่ยวข้องกับอะไร

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

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

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

หากต้องการเปิดใช้งานเครื่องบันทึกมาโครสำหรับการบันทึก คุณต้องทำตามขั้นตอนต่อไปนี้:


ขั้นตอนต่อไปในการทำงานกับเครื่องบันทึกมาโครคือการกำหนดค่าพารามิเตอร์สำหรับการบันทึกมาโครเพิ่มเติม ซึ่งสามารถทำได้ในหน้าต่าง “บันทึกมาโคร”, ที่ไหน:

  • ฟิลด์ชื่อมาโคร- คุณสามารถเขียนชื่อที่คุณเข้าใจในภาษาใดก็ได้ แต่จะต้องขึ้นต้นด้วยตัวอักษร และไม่มีเครื่องหมายวรรคตอนหรือช่องว่าง
  • ช่องแป้นพิมพ์ลัด- คุณจะใช้ในอนาคตเพื่อเริ่มมาโครของคุณอย่างรวดเร็ว ในกรณีที่คุณต้องการลงทะเบียนใหม่ ตัวเลือกนี้จะอยู่ในเมนู “เครื่องมือ” - “มาโคร” - “มาโคร” - “เรียกใช้”หรือบนแท็บ "นักพัฒนา"กดปุ่ม “มาโคร”;
  • ช่อง "บันทึกไปที่..."— คุณสามารถระบุตำแหน่งที่จะบันทึกข้อความแมโคร (แต่ไม่ได้ส่ง) และมี 3 ตัวเลือก:
    • "หนังสือเล่มนี้"— มาโครจะถูกบันทึกในโมดูลของสมุดงานปัจจุบันและสามารถดำเนินการได้เมื่อเปิดสมุดงาน Excel นี้เท่านั้น
    • "หนังสือเล่มใหม่"— มาโครจะถูกบันทึกในเทมเพลตตามการสร้างสมุดงานใหม่ที่ว่างเปล่าใน Excel ซึ่งหมายความว่าแมโครจะพร้อมใช้งานในสมุดงานทั้งหมดที่จะสร้างบนคอมพิวเตอร์เครื่องนี้ตั้งแต่นั้นเป็นต้นมา
    • “สมุดมาโครส่วนตัว”- เป็นสมุดงานแมโคร Excel พิเศษที่เรียกว่า "ส่วนตัว.xls"และใช้เป็นไลบรารีหน่วยเก็บข้อมูลพิเศษของมาโคร เมื่อเริ่มต้นระบบ แมโครจากสมุดงาน “Personal.xls” จะถูกโหลดลงในหน่วยความจำ และสามารถเปิดใช้งานในสมุดงานใดก็ได้เมื่อใดก็ได้
  • ช่อง "คำอธิบาย"- ที่นี่คุณสามารถอธิบายว่ามาโครควรทำอะไรและอย่างไร เหตุใดจึงถูกสร้างขึ้นและมีฟังก์ชันอะไรบ้าง นี่คือฟิลด์ข้อมูลล้วนๆ ซึ่งเรียกว่าหน่วยความจำ

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

สร้างแมโครใน Excelในตัวแก้ไข Visual Basic

ในวิธีนี้ เราจะดูวิธีสร้างแมโครใน Excel ผ่านทางโปรแกรมแก้ไขโปรแกรม VBA ซึ่งดังที่ได้กล่าวไว้ข้างต้นว่ามีอยู่ใน Excel เวอร์ชันใดก็ได้

การเปิดตัวแก้ไขโปรแกรม VBA เกิดขึ้นแตกต่างกันไป ขึ้นอยู่กับเวอร์ชันของโปรแกรม Excel ของคุณ:

  • ใน Excel เวอร์ชัน 2003 และใหม่กว่าเราต้องการในเมนู "บริการ"ให้เลือกรายการ "มาโคร"และกด "โปรแกรมแก้ไข Visual Basic";
  • ใน Excel เวอร์ชัน 2007 และใหม่กว่าเราต้องการบนแท็บ "นักพัฒนา"กดปุ่ม "โปรแกรมแก้ไข Visual Basic"- หากคุณไม่พบแท็บนี้ คุณจะต้องเปิดใช้งานโดยเลือกรายการเมนู “ไฟล์” - “ตัวเลือก” - “ปรับแต่ง Ribbon”และในกล่องโต้ตอบ ให้ใช้ช่องทำเครื่องหมายเพื่อเปิดใช้งานแท็บ "นักพัฒนา".

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

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

มาโครทั้งหมดของเราจะถูกเก็บไว้ในสิ่งที่เรียกว่า โมดูลซอฟต์แวร์- ในหนังสือ Excel เวอร์ชันใดๆ เราสามารถสร้างโมดูลโปรแกรมใดๆ ในปริมาณเท่าใดก็ได้ และวางมาโครทั้งหมดที่เราสร้างขึ้นในนั้น หนึ่งโมดูลสามารถมีมาโครจำนวนเท่าใดก็ได้ที่คุณต้องการหรือสร้าง โมดูลมีอยู่ในหน้าต่าง “โครงการสำรวจ”และอยู่ที่มุมซ้ายบนของตัวแก้ไขมาโคร (คุณสามารถเรียกมันโดยใช้คีย์ผสมก็ได้ CTRL+R).

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


ที่จริงแล้วมาโครเองเมื่อทำงานในโมดูลมาตรฐานจะมีลักษณะดังนี้:

ลองดูตัวอย่างแมโครที่ใช้งานได้:

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

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

การสร้างปุ่มเพื่อเรียกใช้แมโครในแถบเครื่องมือ

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


วิธีนี้สามารถใช้ได้กับ MS Excel เวอร์ชันใดก็ได้และประกอบด้วยข้อเท็จจริงที่ว่าเราจะวางปุ่มบนแผ่นงานของเราโดยตรงเป็นวัตถุกราฟิก ในการทำเช่นนี้คุณต้องมี:

  • ใน MS Excel 2003 และเก่ากว่าไปที่เมนู "ดู", เลือก "แถบเครื่องมือ"และกดปุ่ม "แบบฟอร์ม".
  • ใน MS Excel 2007 และใหม่กว่าคุณต้องการบนแท็บ "นักพัฒนา"เปิดเมนูแบบเลื่อนลง "แทรก"และเลือกวัตถุ "ปุ่ม".

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

วิธีสร้างฟังก์ชันแบบกำหนดเองใน VBA

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

ตัวอย่างเช่น หากต้องการสร้างฟังก์ชันที่กำหนดเองสำหรับภาษีมูลค่าเพิ่มหรือที่เรียกว่า VAT เราจำเป็นต้องเปิดตัวแก้ไข VBA ของเราและเพิ่มโมดูลใหม่ เลือกจากเมนู "แทรก"ย่อหน้า "โมดูล"และป้อนข้อความสำหรับฟังก์ชันของเราที่นั่น: ควรสังเกตว่าความแตกต่างที่สำคัญระหว่างฟังก์ชันและมาโครคือส่วนหัว การทำงานแทนที่ ย่อยและมีรายการอาร์กิวเมนต์ที่สมบูรณ์ ในตัวอย่างของเราคือ สรุป- หลังจากป้อนรหัสของเราแล้ว รหัสนั้นจะพร้อมใช้งานในหน้าต่าง Function Wizard มาตรฐานซึ่งอยู่ในเมนู "สูตร"ย่อหน้า "แทรกฟังก์ชัน".
และเลือกหมวดหมู่ "ผู้ใช้กำหนด"ซึ่งฟังก์ชันการเขียนของเราจะปรากฏขึ้น "เอ็นดีเอส".
หลังจากเลือกฟังก์ชันของเราแล้ว คุณสามารถวางเคอร์เซอร์บนเซลล์พร้อมกับอาร์กิวเมนต์ได้ ซึ่งจะมีจำนวนเงินที่เราคำนวณ VAT ทุกอย่างจะเกิดขึ้นเหมือนกับฟังก์ชันปกติ
และนั่นคือทั้งหมดสำหรับฉัน! ฉันหวังอย่างนั้นจริงๆบทความเกี่ยวกับวิธีสร้างแมโครใน Excel ชัดเจนและเป็นประโยชน์ต่อคุณ ฉันจะขอบคุณมากสำหรับความคิดเห็นของคุณเนื่องจากนี่เป็นตัวบ่งชี้ความสามารถในการอ่านและเป็นแรงบันดาลใจให้ฉันเขียนบทความใหม่! แบ่งปันสิ่งที่คุณอ่านกับเพื่อนของคุณและชอบมัน!

เช่นเดียวกับในแอปพลิเคชันอื่น ๆ ไมโครซอฟต์ ออฟฟิศมีสิ่งที่น่าสนใจเช่นมาโคร โดยสรุป แมโครคือลำดับการดำเนินการที่ตั้งโปรแกรมได้ คุณสามารถสร้างมันขึ้นมาได้สองวิธี:

1. การใช้รายการเมนูที่เกี่ยวข้อง

2. ด้วยตนเอง

วิธีแรกนั้นง่ายมากและไม่ต้องใช้ทักษะการเขียนโปรแกรมพิเศษ แต่ก่อนที่คุณจะเริ่มสร้างมาโคร คุณต้องแก้ไขการตั้งค่าความปลอดภัยของคุณเสียก่อน ไปที่ไฟล์/ตัวเลือก/ศูนย์ความเชื่อถือ/การตั้งค่าศูนย์ความเชื่อถือ/การตั้งค่ามาโคร ที่นี่คุณต้องเลือก เปิดใช้งานมาโครทั้งหมด.


ตอนนี้ทุกอย่างพร้อมแล้ว และเรามุ่งตรงไปที่การสร้างมาโคร เปิดแท็บ นักพัฒนาและกด

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

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

ตอนนี้เพื่อเรียกใช้แมโครของเรา เราต้องไปที่แท็บ นักพัฒนากด มาโคร.

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

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