VBA (Visual Basic for Applications) เป็นภาษาโปรแกรมที่ใช้ในไฟล์ MS Excel เพื่อทำให้สเปรดชีตทำงานโดยอัตโนมัติ แมโคร VBA ใช้เพื่อเขียนฟังก์ชันที่ผู้ใช้กำหนด ซึ่งช่วยให้คุณเร่งงานที่ต้องทำด้วยตนเองได้ ในบทความนี้ คุณจะได้เรียนรู้วิธีการทำงานกับแมโคร VBA ในไฟล์ MS Excel โดยทางโปรแกรม ในตอนท้ายของบทความนี้ คุณจะสามารถแยก เพิ่ม และแก้ไขแมโคร VBA ในสมุดงาน Excel โดยใช้ C#
- ทำงานกับ VBA Macros โดยใช้ C# API
- แยกมาโคร VBA จากสมุดงาน Excel
- เพิ่มแมโคร VBA ลงในสมุดงาน Excel
- แก้ไขแมโคร VBA ในสมุดงาน Excel
- รับใบอนุญาตฟรี
ทำงานกับมาโคร VBA ในไฟล์ Excel - C# API
Aspose.Cells for .NET เป็นไลบรารีคลาส C# ที่ออกแบบมาเพื่อจัดการสเปรดชีตโดยอัตโนมัติจากภายในแอปพลิเคชัน .NET API มีคุณลักษณะมากมายที่ช่วยให้คุณสามารถสร้าง แก้ไข และแปลงสมุดงาน MS Excel นอกจากนี้ API ยังทำให้สามารถทำงานกับมาโคร VBA ได้อย่างราบรื่น Aspose.Cells for .NET มีให้สำหรับ ดาวน์โหลด เป็นไฟล์ DLL และโฮสต์บน NuGet
PM> Install-Package Aspose.Cells
แยกมาโคร VBA จากไฟล์ Excel โดยใช้ C
เริ่มต้นด้วยการแยกแมโคร VBA จากสมุดงาน Excel ที่มีอยู่ ต่อไปนี้เป็นขั้นตอนในการดำเนินการนี้
- สร้างวัตถุของคลาส Workbook เพื่อโหลดไฟล์ Excel
- เข้าถึงแต่ละโมดูล VBA จากคอลเลกชัน Workbook.VbaProject.Modules ไปยังวัตถุ VbaModule
- ดึงรหัสจากแต่ละโมดูลโดยใช้คุณสมบัติ VbaModule.Codes
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกแมโคร VBA จากสมุดงาน Excel โดยใช้ C#
// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-cells/Aspose.Cells-for-.NET
// สร้างวัตถุสมุดงานจากไฟล์ Excel ต้นทาง
Workbook workbook = new Workbook("sample.xlsm");
// แยกโค้ดจากโมดูล VBA แต่ละโมดูล
foreach (VbaModule module in workbook.VbaProject.Modules)
{
string code = module.Codes;
Console.Write(code);
}
เพิ่ม VBA Macros ให้กับไฟล์ Excel โดยใช้ C#
Aspose.Cells for .NET ยังให้คุณเพิ่มแมโคร VBA ลงในไฟล์ Excel ที่มีอยู่หรือไฟล์ใหม่ สามารถทำได้โดยทำตามขั้นตอนด้านล่าง
- สร้างไฟล์ Excel ใหม่หรือโหลดไฟล์ที่มีอยู่โดยใช้คลาส Workbook
- เพิ่มแผ่นงานใหม่หรือรับแผ่นงานที่มีอยู่โดยใช้คลาส แผ่นงาน
- เพิ่มโมดูล VBA ใหม่โดยใช้เมธอด Workbook.VbaProject.Modules.Add(Worksheet) และรับ ID ของโมดูล
- เข้าถึงโมดูล VBA จากคอลเลกชัน Workbook.VbaProject.Modules[idx] ลงในวัตถุ VbaModule
- เพิ่มชื่อโมดูลโดยใช้คุณสมบัติ VbaModule.Name
- เพิ่มโค้ดให้กับโมดูลโดยใช้คุณสมบัติ VbaModule.Codes
- บันทึกสมุดงานโดยใช้เมธอด Workbook.Save(String, SaveFormat.Xlsm)
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเพิ่มแมโคร VBA ลงในสมุดงาน Excel โดยใช้ C#
// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-cells/Aspose.Cells-for-.NET
// สร้างสมุดงานใหม่
Workbook workbook = new Workbook();
// เข้าถึงแผ่นงานแรก
Worksheet worksheet = workbook.Worksheets[0];
// เพิ่มโมดูล VBA
int idx = workbook.VbaProject.Modules.Add(worksheet);
// เข้าถึงโมดูล VBA ตั้งชื่อและรหัส
Aspose.Cells.Vba.VbaModule module = workbook.VbaProject.Modules[idx];
module.Name = "TestModule";
module.Codes = "Sub ShowMessage()" + "\r\n" +
" MsgBox \"Welcome to Aspose!\"" + "\r\n" +
"End Sub";
// บันทึกสมุดงาน
workbook.Save("output_out.xlsm", SaveFormat.Xlsm);
แก้ไข VBA Macro ในไฟล์ Excel โดยใช้ C#
คุณยังสามารถแก้ไขแมโคร VBA ที่มีอยู่ในไฟล์ Excel โดยใช้ขั้นตอนต่อไปนี้
- ใช้คลาส Workbook เพื่อโหลดไฟล์ Excel
- เข้าถึงโมดูล VBA จากคอลเลกชัน Workbook.VbaProject.Modules ลงในวัตถุ VbaModule
- ดึงโค้ดจากโมดูลที่ต้องการโดยใช้คุณสมบัติ VbaModule.Codes
- แทนที่โค้ดและบันทึกไฟล์ Excel โดยใช้วิธี Workbook.Save(String)
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแก้ไขแมโคร VBA ในไฟล์ Excel โดยใช้ C#
// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-cells/Aspose.Cells-for-.NET
// สร้างวัตถุสมุดงานจากไฟล์ Excel ต้นทาง
Workbook workbook = new Workbook("sample.xlsm");
// เปลี่ยนรหัสโมดูล VBA
foreach (VbaModule module in workbook.VbaProject.Modules)
{
string code = module.Codes;
// แทนที่ข้อความเดิมด้วยข้อความที่แก้ไข
if (code.Contains("This is test message."))
{
code = code.Replace("This is test message.", "This is Aspose.Cells message.");
module.Codes = code;
}
}
// บันทึกไฟล์ Excel เอาต์พุต
workbook.Save("output_out.xlsm");
รับใบอนุญาตฟรี
คุณสามารถใช้หรือประเมิน Aspose.Cells for .NET ได้ฟรีโดยใช้ใบอนุญาตชั่วคราวที่มีอายุ 30 วัน รับของคุณทันที.
บทสรุป
มาโคร VBA ในไฟล์ MS Excel ใช้เพื่อทำงานประเภทต่างๆ ที่เกี่ยวข้องกับสเปรดชีตโดยอัตโนมัติ เพื่อจัดการแมโคร VBA โดยทางโปรแกรม บทความนี้กล่าวถึงวิธีการแยก เพิ่ม และแก้ไขโค้ดในโมดูล VBA โดยใช้ C# คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ API การจัดการสเปรดชีต C# โดยใช้ เอกสารประกอบ
ดูสิ่งนี้ด้วย
เคล็ดลับ: คุณอาจต้องการดู Aspose แอปเว็บลบมาโครฟรี