การทำงานกับมาโครVBA

Visual Basicสำหรับการใช้งาน(VBA)สำหรับMicrosoft Wordเป็นภาษาการเขียนโปรแกรมที่เรียบง่ายแต่มีประสิทธิภาพที่ส Aspose.WordsAPIให้สามชั้นเรียนที่จะได้รับการเข้าถึงVBAรหัสแหล่งที่มาของโครงการ:

  • คลาสVBAProjectให้การเข้าถึงข้อมูลโครงการVBA
  • คลาสVBAModulesCollectionส่งคืนคอลเล็กชันของโมดูลโครงการVBA
  • คลาสVbaModuleให้การเข้าถึงโมดูลโครงการVBA

สร้างโครงการVBA

Aspose.WordsAPIให้VbaProjectคุณสมบัติที่จะได้รับหรือตั้งVbaProjectในเอกสาร.

ตัวอย่างรหัสต่อไปนี้แสดงให้เห็นถึงวิธีการสร้างVBAโครงการและVBAโมดูลพร้อมกับคุณสมบัติพื้นฐา:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
// Create a new VBA project.
VbaProject project = new VbaProject();
project.setName("AsposeProject");
doc.setVbaProject(project);
// Create a new module and specify a macro source code.
VbaModule module = new VbaModule();
module.setName("AsposeModule");
module.setType(VbaModuleType.PROCEDURAL_MODULE);
module.setSourceCode("New source code");
// Add module to the VBA project.
doc.getVbaProject().getModules().add(module);
doc.save(dataDir + "VbaProject_out.docm");

อ่านมาโคร

Aspose.Wordsนอกจากนี้ยังมีผู้ใช้ที่มีความสามารถในการอ่านVBAแมโคร.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการอ่านVBAแมโครจากเอกสาร:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document(dataDir + "VbaProject_out.docm");
for (VbaModule module : doc.getVbaProject().getModules()) {
System.out.println(module.getSourceCode());
}
doc.save(dataDir + "VbaProject_out.docm");

แก้ไขแมโคร

โดยใช้Aspose.Wordsผู้ใช้สามารถปรับเปลี่ยนVBAมาโคร.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการปรับเปลี่ยนVBAมาโครโดยใช้คุณสมบัติSourceCode:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document(dataDir + "VbaProject_out.docm");
VbaProject project = doc.getVbaProject();
String newSourceCode = "Test change source code";
// Choose a module, and set a new source code.
project.getModules().get(0).setSourceCode(newSourceCode);

โคลนVBAโครงการ

ด้วยAspose.Wordsก็ยังเป็นไปได้ที่จะโคลนVBAโครงการ.

ตัวอย่างรหัสต่อไปนี้สาธิตวิธีการโคลนโปรเจ็กต์VBAโดยใช้คุณสมบัติCloneซึ่งสร้างสำเนาของโปร:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document(dataDir + "VbaProject_out.docm");
VbaProject project = doc.getVbaProject();
Document destDoc = new Document();
// Clone the whole project.
destDoc.setVbaProject(doc.getVbaProject().deepClone());
destDoc.save(dataDir + "output.docm");

โคลนVBAโมดูล

คุณยังสามารถโคลนโมดูลVBAถ้าจำเป็น.

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

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document(dataDir + "VbaProject_out.docm");
VbaProject project = doc.getVbaProject();
Document destDoc = new Document();
destDoc.setVbaProject(new VbaProject());
// Clone a single module.
VbaModule copyModule = doc.getVbaProject().getModules().get("Module1").deepClone();
destDoc.getVbaProject().getModules().add(copyModule);
destDoc.save(dataDir + "output.docm");